[GeoNetwork-users] CSW search requests

I am having a frustrating time understanding the behaviour of certain CSW ISO requests made via the Geonetwork admin ISO test interface (GN 2.4.2 installed on Linux server). There are two problems I'm experiencing:

(1) The OGC filter PropertyIsEqualTo behaves very much like PropertyIsLike (as a previous poster found at:
http://osgeo-org.1803224.n2.nabble.com/PropertyIsEqualTo-but-not-exactly-td4594438.html). If I issue the query below:

<?xml version="1.0"?>
<csw:GetRecords xmlns:csw="http://www.opengis.net/cat/csw/2.0.2&quot; service="CSW" version="2.0.2"
    resultType="results" outputSchema="csw:IsoRecord">
    <csw:Query typeNames="gmd:MD_Metadata">
       
            <csw:ElementSetName>brief</csw:ElementSetName>
       
        <csw:Constraint version="1.1.0">
            <ogc:Filter xmlns:ogc="http://www.opengis.net/ogc&quot; xmlns:gml="http://www.opengis.net/gml&quot;&gt;
        <ogc:And>
          <ogc:PropertyIsEqualTo>
            <ogc:PropertyName>Title</ogc:PropertyName>
            <ogc:Literal>landsat mss</ogc:Literal>
          </ogc:PropertyIsEqualTo>
        </ogc:And>
      </ogc:Filter>
        </csw:Constraint>
    </csw:Query>
</csw:GetRecords>

I get all records that start with "landsat mss" regardless of case (in passing, I note that the matchCase attribute of PropertyIsEqualTo is ignored). I would expect that I'd just get the one whose title is "landsat mss". Is this behaviour intentional? Is this issue addressed in 2.4.3, as I read in the release notes that work has been done in the CSW area to make the filtering behaviour more OGC compliant.

(2) I am confused about exactly which characters are allowed in the title field of a metadata record. My experience is that underscores and hyphens are quietly allowed to be entered, but then the records whose titles contain them cannot be found in CSW searches. So if I change the above to search for "landsat-tm" it's not found, even though the record exists. Similarly changing it to "landsat_tm". I realise this may be a Lucene question - it appears that _ and - (at least) have special meanings to do with tokenisation. Is there any way I can control how these metacharacters are interpreted by GN? If not, I am going to have to make sure that any automatically harvested metadata doesn't have titles with special characters in (of course they all do :frowning: ).

Thanks in advance for any pointers on this.

David Herbert
British Antarctic Survey.

Hi David,

I tested with 2.4.3 and get the same problem you do i.e I put Hydrological
for eact match of title and get back 2 records with titles containing 'Hydrological'.
I get similar issues when using PropertyIsLessThanEqualTo and PropertyIsGreaterThanEqualTo
query by date range.
See ticket #221 on the Geonetwork Wiki site.

I note there is an error turning up in the geonetwork.log about a SAXParseException.
Perhaps this error is making the search logic faulty. Here is a log
file after I switched on DEBUG mode in log4j.cfg:

<csw:GetRecords xmlns:csw="http://www.opengis.net/cat/csw/2.0.2&quot; service="CSW" version="2.0.2" resultType="results" outputSchema="csw:IsoRecord">
  <csw:Query typeNames="gmd:MD_Metadata">
    <csw:ElementSetName>brief</csw:ElementSetName>
    <csw:Constraint version="1.1.0">
      <ogc:Filter xmlns:ogc="http://www.opengis.net/ogc&quot; xmlns:gml="http://www.opengis.net/gml&quot;&gt;
        <ogc:And>
          <ogc:PropertyIsEqualTo>
            <ogc:PropertyName>Title</ogc:PropertyName>
            <ogc:Literal>Hydrological</ogc:Literal>
          </ogc:PropertyIsEqualTo>
        </ogc:And>
      </ogc:Filter>
    </csw:Constraint>
  </csw:Query>
....
...
2010-05-07 08:42:11,917 DEBUG [geonetwork.search] - Lucene Query: title:hydrological
2010-05-07 08:42:11,917 DEBUG [geonetwork.search] - Lucene Query: +title:hydrological
2010-05-07 08:42:11,917 DEBUG [geonetwork.search] - Lucene Query: _isTemplate:n
2010-05-07 08:42:11,917 DEBUG [geonetwork.search] - Lucene Query: +(+title:hydrological) +_isTemplate:n
2010-05-07 08:42:11,917 DEBUG [geonetwork.csw.search] - Lucene query: +(+(+title:hydrological) +_isTemplate:n) +(_op0:2 _op0:1 _op0:0 _op0:-1 _owner:1)
2010-05-07 08:42:12,167 ERROR [geonetwork.search] - Errors occurred when trying to parse a filter:
2010-05-07 08:42:12,167 ERROR [geonetwork.search] - ----------------------------------------------
2010-05-07 08:42:12,167 ERROR [geonetwork.search] - org.xml.sax.SAXParseException: cvc-complex-type.2.4.b: The content of element 'ogc:And' is not complete. One of '{"http://www.opengis.net/ogc&quot;:comparisonOps, "http://www.opengis.net/ogc&quot;:spatialOps, "http://www.opengis.net/ogc&quot;:logicOps\}' is expected.
2010-05-07 08:42:12,167 ERROR [geonetwork.search] - ----------------------------------------------
2010-05-07 08:42:12,167 DEBUG [geonetwork.csw.search] - Records matched : 2
2010-05-07 08:42:12,448 INFO [jeeves.service] - -> dispatching to output for : csw
2010-05-07 08:42:12,448 INFO [jeeves.service] - -> writing xml for : csw
2010-05-07 08:42:12,448 DEBUG [jeeves.service] - Service xml is :
<csw:GetRecordsResponse xmlns:csw="http://www.opengis.net/cat/csw/2.0.2&quot; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance&quot; xsi:schemaLocation="http://www.opengis.net/cat/csw/2.0.2 http://schemas.opengis.net/csw/2.0.2/CSW-discovery.xsd&quot;&gt;
  <csw:SearchStatus timestamp="2010-05-07T08:42:11" />
  <csw:SearchResults numberOfRecordsMatched="2" numberOfRecordsReturned="2" elementSet="brief" nextRecord="0">

Andrew
----- Original Message ----- From: "Herbert, David J" <darb1@anonymised.com>
To: <geonetwork-users@lists.sourceforge.net>
Sent: Thursday, May 06, 2010 8:22 PM
Subject: [GeoNetwork-users] CSW search requests

I am having a frustrating time understanding the behaviour of certain CSW ISO requests made via the Geonetwork admin ISO test interface (GN 2.4.2 installed on Linux server). There are two problems I'm experiencing:

(1) The OGC filter PropertyIsEqualTo behaves very much like PropertyIsLike (as a previous poster found at:
http://osgeo-org.1803224.n2.nabble.com/PropertyIsEqualTo-but-not-exactly-td4594438.html). If I issue the query below:

<?xml version="1.0"?>
<csw:GetRecords xmlns:csw="http://www.opengis.net/cat/csw/2.0.2&quot; service="CSW" version="2.0.2"
   resultType="results" outputSchema="csw:IsoRecord">
   <csw:Query typeNames="gmd:MD_Metadata">

           <csw:ElementSetName>brief</csw:ElementSetName>

       <csw:Constraint version="1.1.0">
           <ogc:Filter xmlns:ogc="http://www.opengis.net/ogc&quot; xmlns:gml="http://www.opengis.net/gml&quot;&gt;
<ogc:And>
<ogc:PropertyIsEqualTo>
<ogc:PropertyName>Title</ogc:PropertyName>
<ogc:Literal>landsat mss</ogc:Literal>
</ogc:PropertyIsEqualTo>
</ogc:And>
</ogc:Filter>
       </csw:Constraint>
   </csw:Query>
</csw:GetRecords>

I get all records that start with "landsat mss" regardless of case (in passing, I note that the matchCase attribute of PropertyIsEqualTo is ignored). I would expect that I'd just get the one whose title is "landsat mss". Is this behaviour intentional? Is this issue addressed in 2.4.3, as I read in the release notes that work has been done in the CSW area to make the filtering behaviour more OGC compliant.

(2) I am confused about exactly which characters are allowed in the title field of a metadata record. My experience is that underscores and hyphens are quietly allowed to be entered, but then the records whose titles contain them cannot be found in CSW searches. So if I change the above to search for "landsat-tm" it's not found, even though the record exists. Similarly changing it to "landsat_tm". I realise this may be a Lucene question - it appears that _ and - (at least) have special meanings to do with tokenisation. Is there any way I can control how these metacharacters are interpreted by GN? If not, I am going to have to make sure that any automatically harvested metadata doesn't have titles with special characters in (of course they all do :frowning: ).

Thanks in advance for any pointers on this.

David Herbert
British Antarctic Survey.

------------------------------------------------------------------------------
_______________________________________________
GeoNetwork-users mailing list
GeoNetwork-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geonetwork-users
GeoNetwork OpenSource is maintained at http://sourceforge.net/projects/geonetwork

Hi David,

Actually the exception is caused by having the <ogc:And> but without 2 or more clauses.
If you take away the <ogc:And> the exception goes away. However still you get 2
records back which doesn't seem consistent with asking for 'PropertyIsEqualTo'

Andrew

----- Original Message ----- From: "awalsh" <awalsh@anonymised.com>
To: "Herbert, David J" <darb1@anonymised.com>
Cc: <geonetwork-users@lists.sourceforge.net>; <geonetwork-devel@lists.sourceforge.net>
Sent: Friday, May 07, 2010 8:56 AM
Subject: Re: [GeoNetwork-users] CSW search requests

Hi David,

I tested with 2.4.3 and get the same problem you do i.e I put Hydrological
for eact match of title and get back 2 records with titles containing 'Hydrological'.
I get similar issues when using PropertyIsLessThanEqualTo and PropertyIsGreaterThanEqualTo
query by date range.
See ticket #221 on the Geonetwork Wiki site.

I note there is an error turning up in the geonetwork.log about a SAXParseException.
Perhaps this error is making the search logic faulty. Here is a log
file after I switched on DEBUG mode in log4j.cfg:

<csw:GetRecords xmlns:csw="http://www.opengis.net/cat/csw/2.0.2&quot; service="CSW" version="2.0.2" resultType="results"
outputSchema="csw:IsoRecord">
<csw:Query typeNames="gmd:MD_Metadata">
   <csw:ElementSetName>brief</csw:ElementSetName>
   <csw:Constraint version="1.1.0">
     <ogc:Filter xmlns:ogc="http://www.opengis.net/ogc&quot; xmlns:gml="http://www.opengis.net/gml&quot;&gt;
       <ogc:And>
         <ogc:PropertyIsEqualTo>
           <ogc:PropertyName>Title</ogc:PropertyName>
           <ogc:Literal>Hydrological</ogc:Literal>
         </ogc:PropertyIsEqualTo>
       </ogc:And>
     </ogc:Filter>
   </csw:Constraint>
</csw:Query>
....
...
2010-05-07 08:42:11,917 DEBUG [geonetwork.search] - Lucene Query: title:hydrological
2010-05-07 08:42:11,917 DEBUG [geonetwork.search] - Lucene Query: +title:hydrological
2010-05-07 08:42:11,917 DEBUG [geonetwork.search] - Lucene Query: _isTemplate:n
2010-05-07 08:42:11,917 DEBUG [geonetwork.search] - Lucene Query: +(+title:hydrological) +_isTemplate:n
2010-05-07 08:42:11,917 DEBUG [geonetwork.csw.search] - Lucene query: +(+(+title:hydrological) +_isTemplate:n) +(_op0:2 _op0:1
_op0:0 _op0:-1 _owner:1)
2010-05-07 08:42:12,167 ERROR [geonetwork.search] - Errors occurred when trying to parse a filter:
2010-05-07 08:42:12,167 ERROR [geonetwork.search] - ----------------------------------------------
2010-05-07 08:42:12,167 ERROR [geonetwork.search] - org.xml.sax.SAXParseException: cvc-complex-type.2.4.b: The content of element
'ogc:And' is not complete. One of '{"http://www.opengis.net/ogc&quot;:comparisonOps, "http://www.opengis.net/ogc&quot;:spatialOps,
"http://www.opengis.net/ogc&quot;:logicOps\}' is expected.
2010-05-07 08:42:12,167 ERROR [geonetwork.search] - ----------------------------------------------
2010-05-07 08:42:12,167 DEBUG [geonetwork.csw.search] - Records matched : 2
2010-05-07 08:42:12,448 INFO [jeeves.service] - -> dispatching to output for : csw
2010-05-07 08:42:12,448 INFO [jeeves.service] - -> writing xml for : csw
2010-05-07 08:42:12,448 DEBUG [jeeves.service] - Service xml is :
<csw:GetRecordsResponse xmlns:csw="http://www.opengis.net/cat/csw/2.0.2&quot; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance&quot;
xsi:schemaLocation="http://www.opengis.net/cat/csw/2.0.2 http://schemas.opengis.net/csw/2.0.2/CSW-discovery.xsd&quot;&gt;
<csw:SearchStatus timestamp="2010-05-07T08:42:11" />
<csw:SearchResults numberOfRecordsMatched="2" numberOfRecordsReturned="2" elementSet="brief" nextRecord="0">

Andrew
----- Original Message ----- From: "Herbert, David J" <darb1@anonymised.com>
To: <geonetwork-users@lists.sourceforge.net>
Sent: Thursday, May 06, 2010 8:22 PM
Subject: [GeoNetwork-users] CSW search requests

I am having a frustrating time understanding the behaviour of certain CSW ISO requests made via the Geonetwork admin ISO test
interface (GN 2.4.2 installed on Linux server). There are two problems I'm experiencing:

(1) The OGC filter PropertyIsEqualTo behaves very much like PropertyIsLike (as a previous poster found at:
http://osgeo-org.1803224.n2.nabble.com/PropertyIsEqualTo-but-not-exactly-td4594438.html). If I issue the query below:

<?xml version="1.0"?>
<csw:GetRecords xmlns:csw="http://www.opengis.net/cat/csw/2.0.2&quot; service="CSW" version="2.0.2"
   resultType="results" outputSchema="csw:IsoRecord">
   <csw:Query typeNames="gmd:MD_Metadata">

           <csw:ElementSetName>brief</csw:ElementSetName>

       <csw:Constraint version="1.1.0">
           <ogc:Filter xmlns:ogc="http://www.opengis.net/ogc&quot; xmlns:gml="http://www.opengis.net/gml&quot;&gt;
<ogc:And>
<ogc:PropertyIsEqualTo>
<ogc:PropertyName>Title</ogc:PropertyName>
<ogc:Literal>landsat mss</ogc:Literal>
</ogc:PropertyIsEqualTo>
</ogc:And>
</ogc:Filter>
       </csw:Constraint>
   </csw:Query>
</csw:GetRecords>

I get all records that start with "landsat mss" regardless of case (in passing, I note that the matchCase attribute of
PropertyIsEqualTo is ignored). I would expect that I'd just get the one whose title is "landsat mss". Is this behaviour
intentional? Is this issue addressed in 2.4.3, as I read in the release notes that work has been done in the CSW area to make the
filtering behaviour more OGC compliant.

(2) I am confused about exactly which characters are allowed in the title field of a metadata record. My experience is that
underscores and hyphens are quietly allowed to be entered, but then the records whose titles contain them cannot be found in CSW
searches. So if I change the above to search for "landsat-tm" it's not found, even though the record exists. Similarly changing
it to "landsat_tm". I realise this may be a Lucene question - it appears that _ and - (at least) have special meanings to do with
tokenisation. Is there any way I can control how these metacharacters are interpreted by GN? If not, I am going to have to make
sure that any automatically harvested metadata doesn't have titles with special characters in (of course they all do :frowning: ).

Thanks in advance for any pointers on this.

David Herbert
British Antarctic Survey.

------------------------------------------------------------------------------
_______________________________________________
GeoNetwork-users mailing list
GeoNetwork-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geonetwork-users
GeoNetwork OpenSource is maintained at http://sourceforge.net/projects/geonetwork

------------------------------------------------------------------------------

_______________________________________________
GeoNetwork-users mailing list
GeoNetwork-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geonetwork-users
GeoNetwork OpenSource is maintained at http://sourceforge.net/projects/geonetwork

Thanks for this, Andrew.

Just to say I have now upgraded GN to 2.4.3 and experience the same behaviour. I have also turned on more debugging and have further info which may help. Here is my CSW query:

<csw:GetRecords xmlns:csw="http://www.opengis.net/cat/csw/2.0.2&quot; service="CSW" version="2.0.2"
    resultType="results" outputSchema="csw:IsoRecord">
    <csw:Query typeNames="gmd:MD_Metadata">
        <csw:ElementSetName>brief</csw:ElementSetName>
        <csw:Constraint version="1.1.0">
            <ogc:Filter xmlns:ogc="http://www.opengis.net/ogc&quot; xmlns:gml="http://www.opengis.net/gml&quot;&gt;
        <ogc:PropertyIsEqualTo>
                    <ogc:PropertyName>Title</ogc:PropertyName>
                    <ogc:Literal>landsat mss</ogc:Literal>
                </ogc:PropertyIsEqualTo>
      </ogc:Filter>
        </csw:Constraint>
    </csw:Query>
</csw:GetRecords>

Here is the output I now get in geonetwork.log:

2010-05-07 09:40:31,892 INFO [geonetwork.csw] - Dispatching operation : GetRecords
2010-05-07 09:40:32,317 INFO [geonetwork.csw.search] - Unknown queryable field : _isTemplate
2010-05-07 09:40:32,475 DEBUG [geonetwork.csw.search] - Search criteria:
<BooleanQuery>
  <BooleanClause required="true" prohibited="false">
    <PhraseQuery fld="title" txt="landsat mss">
      <TermQuery fld="title" txt="landsat" />
      <TermQuery fld="title" txt="mss" />
    </PhraseQuery>
  </BooleanClause>
  <BooleanClause required="true" prohibited="false">
    <TermQuery fld="_isTemplate" txt="n" />
  </BooleanClause>
</BooleanQuery>
2010-05-07 09:40:32,481 DEBUG [geonetwork.search] - Lucene Query: title:"landsat mss"
2010-05-07 09:40:32,481 DEBUG [geonetwork.search] - Lucene Query: _isTemplate:n
2010-05-07 09:40:32,481 DEBUG [geonetwork.search] - Lucene Query: +title:"landsat mss" +_isTemplate:n
2010-05-07 09:40:32,485 DEBUG [geonetwork.csw.search] - Lucene query: +(+title:"landsat mss" +_isTemplate:n) +(_op0:3 _op0:2 _op0:1 _op0:0 _op0:6 _op0:-1 _op0:5 _op0:4 _owner:1)

Clearly the parsing of my query didn't result in what I expected - it looks like it's doing a search on the whole phrase (?) and also each term within it (i.e. the space has been regarded as a tokenizing character). When the separator in the phrase was - or _ it is simply stripped out and treated as a space (so the <BooleanQuery> for "landsat-mss" looks just the same as above).

Not sure what the "Unknown queryable field : _isTemplate" is about, but it doesn't appear to make any difference. Looking at:

web/geonetwork/xml/csw/filter-to-lucene.xsl

which I take to be the stylesheet creating the <BooleanQuery> expression from the OGC filter XML, I can't see at all where the <PhraseQuery> element creeps in. From my reading of the XSL it looks like I should get:

<BooleanQuery>
  <BooleanClause required="true" prohibited="false">
      <TermQuery fld="title" txt="landsat mss" />
    </PhraseQuery>
  </BooleanClause>
  <BooleanClause required="true" prohibited="false">
    <TermQuery fld="_isTemplate" txt="n" />
  </BooleanClause>
</BooleanQuery>

It's clearly more complicated than that, and the search expression is being tokenized on an (unknown to me!) group of special characters which include space, - and _. The only place PhraseQuery occurs is in:

web/geonetwork/xml/search/lucene.xsl and the other XSLs in this directory. Not being an XSL expert I can't work out the convoluted hierarchy of how I'm ending up with the <BooleanQuery> I see. In particular I can't see where the - and _ get lost or replaced by spaces. The tokenize template in parser.xsl works purely on spaces, so the other characters must have been lost or replaced before this is called. Can anyone enlighten me further?

With thanks,

David Herbert
British Antarctic Survey.

Hi David

About the -, _ characters in 2.4.3 the title field is processed to remove
them (as was not indexed and searches using this characters didn't return
any result). See http://trac.osgeo.org/geonetwork/ticket/211

I'll test about the issues you comment to provide a fix.

Regards,
Jose Garcia

On Fri, May 7, 2010 at 12:27 PM, Herbert, David J <darb1@anonymised.com> wrote:

Thanks for this, Andrew.

Just to say I have now upgraded GN to 2.4.3 and experience the same
behaviour. I have also turned on more debugging and have further info which
may help. Here is my CSW query:

<csw:GetRecords xmlns:csw="http://www.opengis.net/cat/csw/2.0.2&quot;
service="CSW" version="2.0.2"
   resultType="results" outputSchema="csw:IsoRecord">
   <csw:Query typeNames="gmd:MD_Metadata">
       <csw:ElementSetName>brief</csw:ElementSetName>
       <csw:Constraint version="1.1.0">
           <ogc:Filter xmlns:ogc="http://www.opengis.net/ogc&quot; xmlns:gml="
http://www.opengis.net/gml&quot;&gt;
                                <ogc:PropertyIsEqualTo>
                   <ogc:PropertyName>Title</ogc:PropertyName>
                   <ogc:Literal>landsat mss</ogc:Literal>
               </ogc:PropertyIsEqualTo>
                        </ogc:Filter>
       </csw:Constraint>
   </csw:Query>
</csw:GetRecords>

Here is the output I now get in geonetwork.log:

2010-05-07 09:40:31,892 INFO [geonetwork.csw] - Dispatching operation :
GetRecords
2010-05-07 09:40:32,317 INFO [geonetwork.csw.search] - Unknown queryable
field : _isTemplate
2010-05-07 09:40:32,475 DEBUG [geonetwork.csw.search] - Search criteria:
<BooleanQuery>
<BooleanClause required="true" prohibited="false">
   <PhraseQuery fld="title" txt="landsat mss">
     <TermQuery fld="title" txt="landsat" />
     <TermQuery fld="title" txt="mss" />
   </PhraseQuery>
</BooleanClause>
<BooleanClause required="true" prohibited="false">
   <TermQuery fld="_isTemplate" txt="n" />
</BooleanClause>
</BooleanQuery>
2010-05-07 09:40:32,481 DEBUG [geonetwork.search] - Lucene Query:
title:"landsat mss"
2010-05-07 09:40:32,481 DEBUG [geonetwork.search] - Lucene Query:
_isTemplate:n
2010-05-07 09:40:32,481 DEBUG [geonetwork.search] - Lucene Query:
+title:"landsat mss" +_isTemplate:n
2010-05-07 09:40:32,485 DEBUG [geonetwork.csw.search] - Lucene query:
+(+title:"landsat mss" +_isTemplate:n) +(_op0:3 _op0:2 _op0:1 _op0:0 _op0:6
_op0:-1 _op0:5 _op0:4 _owner:1)

Clearly the parsing of my query didn't result in what I expected - it looks
like it's doing a search on the whole phrase (?) and also each term within
it (i.e. the space has been regarded as a tokenizing character). When the
separator in the phrase was - or _ it is simply stripped out and treated as
a space (so the <BooleanQuery> for "landsat-mss" looks just the same as
above).

Not sure what the "Unknown queryable field : _isTemplate" is about, but it
doesn't appear to make any difference. Looking at:

web/geonetwork/xml/csw/filter-to-lucene.xsl

which I take to be the stylesheet creating the <BooleanQuery> expression
from the OGC filter XML, I can't see at all where the <PhraseQuery> element
creeps in. From my reading of the XSL it looks like I should get:

<BooleanQuery>
<BooleanClause required="true" prohibited="false">
     <TermQuery fld="title" txt="landsat mss" />
   </PhraseQuery>
</BooleanClause>
<BooleanClause required="true" prohibited="false">
   <TermQuery fld="_isTemplate" txt="n" />
</BooleanClause>
</BooleanQuery>

It's clearly more complicated than that, and the search expression is being
tokenized on an (unknown to me!) group of special characters which include
space, - and _. The only place PhraseQuery occurs is in:

web/geonetwork/xml/search/lucene.xsl and the other XSLs in this directory.
Not being an XSL expert I can't work out the convoluted hierarchy of how
I'm ending up with the <BooleanQuery> I see. In particular I can't see where
the - and _ get lost or replaced by spaces. The tokenize template in
parser.xsl works purely on spaces, so the other characters must have been
lost or replaced before this is called. Can anyone enlighten me further?

With thanks,

David Herbert
British Antarctic Survey.

------------------------------------------------------------------------------

_______________________________________________
GeoNetwork-users mailing list
GeoNetwork-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geonetwork-users
GeoNetwork OpenSource is maintained at
http://sourceforge.net/projects/geonetwork