wiki:CSW2020TestSuiteResults

  1. Running the testsuite
  2. GeoNetwork 2.7.x (rev 8557)
  3. GeoNetwork 2.4.x
  4. GeoNetwork 2.2.0

CSW 2.0.2 testsuite

Test made using teamengine :

Running the testsuite

  • Create clean install with no data
    cd $GEONETWORK_HOME
    cd ../bin
    ./start-geonetwork.sh
    
  • Administration page, batch import
    • directory $GEONETWORK_HOME/csw/ogc-testsuite-metadata
  • Run testsuite
./test.sh -source=/catalogue/OGC-CSW-2.0.2/cite/engine/beta/trunk/scripts/csw-2.0.2-latest/ctl -workdir=test -logdir=log > csw.log
./viewlog.sh -logdir=log -session=s0006

GeoNetwork 2.7.x (rev 8557)

CSW 2.0.2 ISO Application Profile

All test for GetCapabilties are ok if commenting LessThanOrEqualTo and GreaterThanOrEqualTo from capabilities.xml.

Test csw:level1.1 (s0001/w60aab3b3c71b3b1_1) Passed
      Test csw:InterfaceBindings.GetCapabilities-GetMethod (s0001/w60aab3b3c71b3b1_1/w28aab1b5c17_1) Passed
      Test csw:InterfaceBindings.GetRecords-SOAPPOSTMethod (s0001/w60aab3b3c71b3b1_1/w28aab1b5c19_1) Passed
      Test csw:InterfaceBindings.GetRecordById-SOAPMethod (s0001/w60aab3b3c71b3b1_1/w28aab1b5c21_1) Passed
      Test csw:InterfaceBindings.GetRecordById-GETMethod (s0001/w60aab3b3c71b3b1_1/w28aab1b5c23_1) Passed
      Test csw:InterfaceBindings.DescribeRecord-SOAPPOSTMethod (s0001/w60aab3b3c71b3b1_1/w28aab1b5c25_1) Passed
      Test csw:InterfaceBindings.GetRecords-InvalidRequest (s0001/w60aab3b3c71b3b1_1/w28aab1b5c27_1) Passed
      Test csw:InterfaceBindings.GetRecordById-InvalidVersion (s0001/w60aab3b3c71b3b1_1/w28aab1b5c29_1) Passed
   Test csw:level1.2 (s0001/w60aab3b3c71b3b3_1) Passed
      Test csw:CorrectRequestResponse.GetCapabilities-CapabilitiesDocument (s0001/w60aab3b3c71b3b3_1/w37aab1b5c17_1) Passed
         Test ctl:XMLValidatingParser (s0001/w60aab3b3c71b3b3_1/w37aab1b5c17_1/w37aab3b7b3_1) Passed
      Test csw:CorrectRequestResponse.GetRecords-ValidResponseStructures (s0001/w60aab3b3c71b3b3_1/w37aab1b5c19_1) Passed
         Test ctl:XMLValidatingParser (s0001/w60aab3b3c71b3b3_1/w37aab1b5c19_1/w37aab5b7b5b1_1) Passed
         Test ctl:XMLValidatingParser (s0001/w60aab3b3c71b3b3_1/w37aab1b5c19_1/w37aab5b7b5b1_2) Passed
         Test ctl:XMLValidatingParser (s0001/w60aab3b3c71b3b3_1/w37aab1b5c19_1/w37aab5b7b7_1) Passed
      Test csw:CorrectRequestResponse.GetRecords-ValidFilter (s0001/w60aab3b3c71b3b3_1/w37aab1b5c21_1) Passed
         Test csw:CorrectRequestResponse.GetRecordById-ValidResponseStructures (s0001/w60aab3b3c71b3b3_1/w37aab1b5c21_1/w37aab9b9b7_1) Passed
            Test ctl:XMLValidatingParser (s0001/w60aab3b3c71b3b3_1/w37aab1b5c21_1/w37aab9b9b7_1/w37aac11b9b3_1) Passed
            Test ctl:XMLValidatingParser (s0001/w60aab3b3c71b3b3_1/w37aab1b5c21_1/w37aab9b9b7_1/w37aac11b9b5_1) Passed
      Test csw:InterfaceBindings.DescribeRecord-ValidResponseStructure (s0001/w60aab3b3c71b3b3_1/w37aab1b5c23_1) Passed
         Test ctl:XMLValidatingParser (s0001/w60aab3b3c71b3b3_1/w37aab1b5c23_1/w37aac13b7b3_1) Passed
   Test csw:level1.3 (s0001/w60aab3b3c71b3b5_1) Passed
      Test csw:CorrectRequestResponse.GetCapabilities-CapabilitiesDocumentContent (s0001/w60aab3b3c71b3b5_1/w44aab1b5c17_1) Passed
         Test ctl:XMLValidatingParser (s0001/w60aab3b3c71b3b5_1/w44aab1b5c17_1/w44aab3b7b3_1) Passed
      Test csw:CorrectRequestResponse.GetRecords-AnyTextFilter (s0001/w60aab3b3c71b3b5_1/w44aab1b5c19_1) Passed
         Test ctl:XMLValidatingParser (s0001/w60aab3b3c71b3b5_1/w44aab1b5c19_1/w44aab5b7b9b1_1) Passed
         Test ctl:XMLValidatingParser (s0001/w60aab3b3c71b3b5_1/w44aab1b5c19_1/w44aab5b7b9b1_2) Passed
         Test ctl:XMLValidatingParser (s0001/w60aab3b3c71b3b5_1/w44aab1b5c19_1/w44aab5b7c11_1) Passed
      Test csw:CorrectRequestResponse.GetRecords-AndOrFilter (s0001/w60aab3b3c71b3b5_1/w44aab1b5c21_1) Passed
         Test ctl:XMLValidatingParser (s0001/w60aab3b3c71b3b5_1/w44aab1b5c21_1/w44aab7b7b9b1_1) Passed
         Test ctl:XMLValidatingParser (s0001/w60aab3b3c71b3b5_1/w44aab1b5c21_1/w44aab7b7c11_1) Passed
      Test csw:CorrectRequestResponse.GetRecords-BBOXFilter (s0001/w60aab3b3c71b3b5_1/w44aab1b5c23_1) Passed
         Test ctl:XMLValidatingParser (s0001/w60aab3b3c71b3b5_1/w44aab1b5c23_1/w44aab9b7b9b1_1) Passed
         Test ctl:XMLValidatingParser (s0001/w60aab3b3c71b3b5_1/w44aab1b5c23_1/w44aab9b7b9b1_2) Passed
         Test ctl:XMLValidatingParser (s0001/w60aab3b3c71b3b5_1/w44aab1b5c23_1/w44aab9b7b9b1_3) Passed
         Test ctl:XMLValidatingParser (s0001/w60aab3b3c71b3b5_1/w44aab1b5c23_1/w44aab9b7c11_1) Passed
      Test csw:CorrectRequestResponse.GetRecords-CollectionElementsFilter (s0001/w60aab3b3c71b3b5_1/w44aab1b5c25_1) Passed
         Test ctl:XMLValidatingParser (s0001/w60aab3b3c71b3b5_1/w44aab1b5c25_1/w44aac11b7b9b1_1) Passed
         Test ctl:XMLValidatingParser (s0001/w60aab3b3c71b3b5_1/w44aab1b5c25_1/w44aac11b7b9b1_2) Passed
         Test ctl:XMLValidatingParser (s0001/w60aab3b3c71b3b5_1/w44aab1b5c25_1/w44aac11b7c11_1) Passed
      Test csw:CorrectRequestResponse.GetRecordById-Full (s0001/w60aab3b3c71b3b5_1/w44aab1b5c27_1) Passed
         Test ctl:XMLValidatingParser (s0001/w60aab3b3c71b3b5_1/w44aab1b5c27_1/w44aac13b7c11b1_1) Passed
         Test ctl:XMLValidatingParser (s0001/w60aab3b3c71b3b5_1/w44aab1b5c27_1/w44aac13b7c13_1) Passed
      Test csw:CorrectRequestResponse.GetRecordById-GetKVPBrief (s0001/w60aab3b3c71b3b5_1/w44aab1b5c29_1) Passed
         Test ctl:XMLValidatingParser (s0001/w60aab3b3c71b3b5_1/w44aab1b5c29_1/w44aac15b7c11b1_1) Passed
         Test ctl:XMLValidatingParser (s0001/w60aab3b3c71b3b5_1/w44aab1b5c29_1/w44aac15b7c13_1) Passed
   Test csw:level1.4 (s0001/w60aab3b3c71b3b7_1) Passed
      Test csw:CorrectRequestResponse.GetRecords-ServicesFilter (s0001/w60aab3b3c71b3b7_1/w53aab1b5c17_1) Passed
         Test ctl:XMLValidatingParser (s0001/w60aab3b3c71b3b7_1/w53aab1b5c17_1/w53aab3b7b9b1_1) Passed
         Test ctl:XMLValidatingParser (s0001/w60aab3b3c71b3b7_1/w53aab1b5c17_1/w53aab3b7c11_1) Passed
      Test csw:CorrectRequestResponse.GetRecords-ServicesOpOnFilter (s0001/w60aab3b3c71b3b7_1/w53aab1b5c19_1) Passed
         Test ctl:XMLValidatingParser (s0001/w60aab3b3c71b3b7_1/w53aab1b5c19_1/w53aab5b7b9b1_1) Passed
         Test ctl:XMLValidatingParser (s0001/w60aab3b3c71b3b7_1/w53aab1b5c19_1/w53aab5b7b9b1_2) Passed
         Test ctl:XMLValidatingParser (s0001/w60aab3b3c71b3b7_1/w53aab1b5c19_1/w53aab5b7c11_1) Passed
   Test csw:level1.5 (s0001/w60aab3b3c71b3b9_1) Passed
      Test csw:MultiLanguage.GetRecords-MultiLingual (s0001/w60aab3b3c71b3b9_1/w57aab1b5c17_1) Passed

CSW 2.0.2

  • Todo : Fix #762 and #761 and run again. This will fix 9 failures for GetRecords tests.
csw:Main
Failure
Executed tests
capability-tests Failure
GetCapabilities-GET Success
csw-2.0.2-GetCapabilities-tc1.1 Success
SchematronValidatingParser Success
csw-2.0.2-GetCapabilities-tc1.2 Success
SchematronValidatingParser Success
csw-2.0.2-GetCapabilities-tc1.3 Success
SchematronValidatingParser Success
csw-2.0.2-GetCapabilities-tc2.1 Success
SchematronValidatingParser Success
csw-2.0.2-GetCapabilities-tc3.1 Success
SchematronValidatingParser Success
csw-2.0.2-GetCapabilities-tc4.1 Success
SchematronValidatingParser Success
csw-2.0.2-GetCapabilities-tc5.1 Success
SchematronValidatingParser Success
csw-2.0.2-GetCapabilities-tc5.2 Success
SchematronValidatingParser Success
csw-2.0.2-GetCapabilities-tc6.1 Success
csw-2.0.2-GetCapabilities-tc7.1 Success
SchematronValidatingParser Success
csw-2.0.2-GetCapabilities-tc7.2 Success
csw-2.0.2-GetCapabilities-tc8.1 Success

DescribeRecord-POST Success
csw-2.0.2-DescribeRecord-tc1.1 Success
SchematronValidatingParser Success
csw-2.0.2-DescribeRecord-tc2.1 Success
SchematronValidatingParser Success
csw-2.0.2-DescribeRecord-tc3.1 Success
SchematronValidatingParser Success
csw-2.0.2-DescribeRecord-tc4.1 Success
csw-2.0.2-DescribeRecord-tc5.1 Success
SchematronValidatingParser Success
csw-2.0.2-DescribeRecord-tc6.1 Success
SchematronValidatingParser Success
csw-2.0.2-DescribeRecord-tc7.1 Success
SchematronValidatingParser Success

GetRecordById-GET Success
csw-2.0.2-GetRecordById-tc1.1 Success
csw-2.0.2-GetRecordById-tc1.2 Success
csw-2.0.2-GetRecordById-tc2.1 Success
csw-2.0.2-GetRecordById-tc2.2 Success
csw-2.0.2-GetRecordById-tc3.1 Success
csw-2.0.2-GetRecordById-tc4.1 Success
SchematronValidatingParser Success
csw-2.0.2-GetRecordById-tc5.1 Success
SchematronValidatingParser Success
csw-2.0.2-GetRecordById-tc6.1 Success
SchematronValidatingParser Success

GetRecords-POST Failure
csw-2.0.2-GetRecords-tc1.1 Failure
SchematronValidatingParser Failure
csw-2.0.2-GetRecords-tc2.1 Success
SchematronValidatingParser Success
csw-2.0.2-GetRecords-tc2.2 Success
SchematronValidatingParser Success
csw-2.0.2-GetRecords-tc3.1 Success
csw-2.0.2-GetRecords-tc4.1 Success
SchematronValidatingParser Success
csw-2.0.2-GetRecords-tc4.2 Failure
csw-2.0.2-GetRecords-tc5.1 Failure
csw-2.0.2-GetRecords-tc5.2 Failure
csw-2.0.2-GetRecords-tc6.1 Success
csw-2.0.2-GetRecords-tc6.2 Failure
csw-2.0.2-GetRecords-tc7.1 Success
SchematronValidatingParser Success
csw-2.0.2-GetRecords-tc8.1 Success
csw-2.0.2-GetRecords-tc8.2 Success
csw-2.0.2-GetRecords-tc9.1 Failure
SchematronValidatingParser Failure
csw-2.0.2-GetRecords-tc10.1 Failure
SchematronValidatingParser Failure
csw-2.0.2-GetRecords-tc11.1 Success
csw-2.0.2-GetRecords-tc11.2 Failure
csw-2.0.2-GetRecords-tc12.1 Failure
csw-2.0.2-GetRecords-tc13.1 Failure
csw-2.0.2-GetRecords-tc14.1 Success
csw-2.0.2-GetRecords-tc14.2 Failure
csw-2.0.2-GetRecords-tc15.1 Success
SchematronValidatingParser Success
csw-2.0.2-GetRecords-tc16.1 Success
SchematronValidatingParser Success
csw-2.0.2-GetRecords-tc16.2 Failure
csw-2.0.2-GetRecords-tc17.1 Failure
csw-2.0.2-GetRecords-tc17.2 Failure
csw-2.0.2-GetRecords-tc18.1 Failure
csw-2.0.2-GetRecords-tc19.1 Success
csw-2.0.2-GetRecords-tc20.1 Failure
csw-2.0.2-GetRecords-tc21.1 Failure
csw-2.0.2-GetRecords-tc22.1 Success
csw-2.0.2-GetRecords-tc23.1 Success
csw-2.0.2-GetRecords-tc24.1 Success
csw-2.0.2-GetRecords-tc25.1 Success
SchematronValidatingParser Success
csw-2.0.2-GetRecords-tc26.1 Success
SchematronValidatingParser Success

test: csw:csw-2.0.2-GetRecords-tc1.1

session: s0001/d41e6546_1/d41e6423_1/d41e2619_1 Assertion: A GetRecords request that omits all optional elements must produce a response containing only a summary of the result set. Test result:Failure Executed tests: ctl:SchematronValidatingParserFailure

Submitted request: Method=

POSTURL= http://localhost:8080/geonetwork/srv/en/cswParameters:

NONE.

Request body:

<csw:GetRecords service="CSW" version="2.0.2"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  xmlns:ows="http://www.opengis.net/ows"
  xmlns:p="http://teamengine.sourceforge.net/parsers"
  xmlns:gml="http://www.opengis.net/gml"
  xmlns:parsers="http://www.occamlab.com/te/parsers"
  xmlns:ogc="http://www.opengis.net/ogc"
  xmlns:saxon="http://saxon.sf.net/"
  xmlns:te="http://www.occamlab.com/te"
  xmlns:xs="http://www.w3.org/2001/XMLSchema"
  xmlns:tec="java:com.occamlab.te.TECore"
  xmlns:tems="java:com.occamlab.te.web.MonitorServlet"
  xmlns:ctl="http://www.occamlab.com/ctl"
  xmlns:xlink="http://www.w3.org/1999/xlink"
  xmlns:xi="http://www.w3.org/2001/XInclude"
  xmlns:csw="http://www.opengis.net/cat/csw/2.0.2"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:dct="http://purl.org/dc/terms/">
  <csw:Query typeNames="csw:Record">
   <csw:ElementSetName>brief</csw:ElementSetName>
  </csw:Query>
 </csw:GetRecords>

test: ctl:SchematronValidatingParser

session: s0001/d41e6546_1/d41e6423_1/d41e2619_1/d41e2854_1 Assertion:Validate an XML instance against a Schematron schema using the given phase. Message Total number of errors detected: 1 Message Error 1: Line 21 - assertion failed:

csw:SearchResults/@numberOfRecordsReturned must have the value zero.

Test result:Failure

Comment

  • OGC 07-006: p34 resultType Zero or one (Conditional) Default values specified by protocol binding or application profile
  • OGC 07-045: p66 RESULTTYPE Optional. Default value is “hits”.

So this test could not expect "a summary of the result set".

test: csw:csw-2.0.2-GetRecords-tc4.2

session: s0001/d41e6546_1/d41e6423_1/d41e2645_1 Assertion: The response to a GetRecords request that specifies an ad hoc view and sorting criteria must include the corresponding csw:Record representations in the correct sort order. Message [FAILURE] Search results are not sorted correctly by dc:date in descending order. Message , , 2003-05-09Z Test result:Failure Submitted request: Method=

POSTURL= http://localhost:8080/geonetwork/srv/en/cswParameters:

NONE.

Request body:

<csw:GetRecords resultType="results" service="CSW" version="2.0.2"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  xmlns:ows="http://www.opengis.net/ows"
  xmlns:p="http://teamengine.sourceforge.net/parsers"
  xmlns:gml="http://www.opengis.net/gml"
  xmlns:parsers="http://www.occamlab.com/te/parsers"
  xmlns:ogc="http://www.opengis.net/ogc"
  xmlns:saxon="http://saxon.sf.net/"
  xmlns:te="http://www.occamlab.com/te"
  xmlns:xs="http://www.w3.org/2001/XMLSchema"
  xmlns:tec="java:com.occamlab.te.TECore"
  xmlns:tems="java:com.occamlab.te.web.MonitorServlet"
  xmlns:ctl="http://www.occamlab.com/ctl"
  xmlns:xlink="http://www.w3.org/1999/xlink"
  xmlns:xi="http://www.w3.org/2001/XInclude"
  xmlns:csw="http://www.opengis.net/cat/csw/2.0.2"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:dct="http://purl.org/dc/terms/">
  <csw:Query typeNames="csw:Record">
   <csw:ElementName>dc:identifier</csw:ElementName>
   <csw:ElementName>dc:type</csw:ElementName>
   <csw:ElementName>dc:date</csw:ElementName>
   <ogc:SortBy>
    <ogc:SortProperty>
     <ogc:PropertyName>dc:date</ogc:PropertyName>
     <ogc:SortOrder>DESC</ogc:SortOrder>
    </ogc:SortProperty>
   </ogc:SortBy>
  </csw:Query>
 </csw:GetRecords>

Comment

Add in config-csw.xml http://trac.osgeo.org/geonetwork/ticket/762 :

<parameter name="Date" field="createDate" type="AdditionalQueryables" />

test: csw:csw-2.0.2-GetRecords-tc5.1

session: s0001/d41e6546_1/d41e6423_1/d41e2650_1 Assertion: The response to a GetRecords request that includes an ogc:Filter having a BBOX operator must include all matching record representations. Message [FAILURE] Missing or invalid response entity. Test result:Failure Submitted request: Method=

POSTURL= http://localhost:8080/geonetwork/srv/en/cswParameters:

NONE.

Request body:

<csw:GetRecords resultType="results" service="CSW" version="2.0.2"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  xmlns:ows="http://www.opengis.net/ows"
  xmlns:p="http://teamengine.sourceforge.net/parsers"
  xmlns:gml="http://www.opengis.net/gml"
  xmlns:parsers="http://www.occamlab.com/te/parsers"
  xmlns:ogc="http://www.opengis.net/ogc"
  xmlns:saxon="http://saxon.sf.net/"
  xmlns:te="http://www.occamlab.com/te"
  xmlns:xs="http://www.w3.org/2001/XMLSchema"
  xmlns:tec="java:com.occamlab.te.TECore"
  xmlns:tems="java:com.occamlab.te.web.MonitorServlet"
  xmlns:ctl="http://www.occamlab.com/ctl"
  xmlns:xlink="http://www.w3.org/1999/xlink"
  xmlns:xi="http://www.w3.org/2001/XInclude"
  xmlns:csw="http://www.opengis.net/cat/csw/2.0.2"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:dct="http://purl.org/dc/terms/">
  <csw:Query typeNames="csw:Record">
   <csw:ElementName>dc:identifier</csw:ElementName>
   <csw:ElementName>ows:BoundingBox</csw:ElementName>
   <csw:Constraint version="1.1.0">
    <ogc:Filter>
     <ogc:BBOX>
      <ogc:PropertyName>/ows:BoundingBox</ogc:PropertyName>
      <gml:Envelope srsName="urn:x-ogc:def:crs:EPSG:6.11:4326">
       <gml:lowerCorner>47.0 -4.5</gml:lowerCorner>
       <gml:upperCorner>52.0 1.0</gml:upperCorner>
      </gml:Envelope>
     </ogc:BBOX>
    </ogc:Filter>
   </csw:Constraint>
  </csw:Query>
 </csw:GetRecords>

Comment

Failed on: test="not($response/*)" but request returned a response. Odd. CHECKME

test: csw:csw-2.0.2-GetRecords-tc5.2

session: s0001/d41e6546_1/d41e6423_1/d41e2655_1 Assertion: The response to a GetRecords request that includes an ogc:Filter having a spatial operator that does not refer to a geometry-valued property must include an exception report. Message [FAILURE] Missing or invalid response entity. Test result:Failure Submitted request: Method=

POSTURL= http://localhost:8080/geonetwork/srv/en/cswParameters:

NONE.

Request body:

<csw:GetRecords resultType="results" service="CSW" version="2.0.2"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  xmlns:ows="http://www.opengis.net/ows"
  xmlns:p="http://teamengine.sourceforge.net/parsers"
  xmlns:gml="http://www.opengis.net/gml"
  xmlns:parsers="http://www.occamlab.com/te/parsers"
  xmlns:ogc="http://www.opengis.net/ogc"
  xmlns:saxon="http://saxon.sf.net/"
  xmlns:te="http://www.occamlab.com/te"
  xmlns:xs="http://www.w3.org/2001/XMLSchema"
  xmlns:tec="java:com.occamlab.te.TECore"
  xmlns:tems="java:com.occamlab.te.web.MonitorServlet"
  xmlns:ctl="http://www.occamlab.com/ctl"
  xmlns:xlink="http://www.w3.org/1999/xlink"
  xmlns:xi="http://www.w3.org/2001/XInclude"
  xmlns:csw="http://www.opengis.net/cat/csw/2.0.2"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:dct="http://purl.org/dc/terms/">
  <csw:Query typeNames="csw:Record">
   <csw:ElementSetName>brief</csw:ElementSetName>
   <csw:Constraint version="1.1.0">
    <ogc:Filter>
     <ogc:BBOX>
      <ogc:PropertyName>dct:spatial</ogc:PropertyName>
      <gml:Envelope srsName="urn:x-ogc:def:crs:EPSG:6.11:4326">
       <gml:lowerCorner>47.0 -4.5</gml:lowerCorner>
       <gml:upperCorner>52.0 1.0</gml:upperCorner>
      </gml:Envelope>
     </ogc:BBOX>
    </ogc:Filter>
   </csw:Constraint>
  </csw:Query>
 </csw:GetRecords>

Comment

Spatial filter is applied to the records geometry whatever the property is. Only one geometry is defined per records (which could be a multipolygon).

test: csw:csw-2.0.2-GetRecords-tc6.2

session: s0001/d41e6546_1/d41e6423_1/d41e2666_1 Assertion: The response to a GetRecords request that includes an ogc:Filter having a PropertyIsEqualTo predicate (case-insensitive) must include all matching record representations. Message [FAILURE] Expected record is missing (urn:uuid:ab42a8c4-95e8-4630-bf79-33e59241605a). Test result:Failure Submitted request: Method=

POSTURL= http://localhost:8080/geonetwork/srv/en/cswParameters:

NONE.

Request body:

<csw:GetRecords resultType="results" service="CSW" version="2.0.2"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  xmlns:ows="http://www.opengis.net/ows"
  xmlns:p="http://teamengine.sourceforge.net/parsers"
  xmlns:gml="http://www.opengis.net/gml"
  xmlns:parsers="http://www.occamlab.com/te/parsers"
  xmlns:ogc="http://www.opengis.net/ogc"
  xmlns:saxon="http://saxon.sf.net/"
  xmlns:te="http://www.occamlab.com/te"
  xmlns:xs="http://www.w3.org/2001/XMLSchema"
  xmlns:tec="java:com.occamlab.te.TECore"
  xmlns:tems="java:com.occamlab.te.web.MonitorServlet"
  xmlns:ctl="http://www.occamlab.com/ctl"
  xmlns:xlink="http://www.w3.org/1999/xlink"
  xmlns:xi="http://www.w3.org/2001/XInclude"
  xmlns:csw="http://www.opengis.net/cat/csw/2.0.2"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:dct="http://purl.org/dc/terms/">
  <csw:Query typeNames="csw:Record">
   <csw:ElementSetName>brief</csw:ElementSetName>
   <csw:Constraint version="1.1.0">
    <ogc:Filter>
     <ogc:PropertyIsEqualTo matchCase="false">
      <ogc:PropertyName>dc:subject</ogc:PropertyName>
      <ogc:Literal>pHYSIOGRAPHy</ogc:Literal>
     </ogc:PropertyIsEqualTo>
    </ogc:Filter>
   </csw:Constraint>
  </csw:Query>
 </csw:GetRecords>

Comment

Keyword are using a org.apache.lucene.analysis.KeywordAnalyzer by default (see config-lucene.xml). If user want a case insensitive search for Keyword, org.apache.lucene.analysis.standard.StandardAnalyzer could be used probably.

test: csw:csw-2.0.2-GetRecords-tc9.1

session: s0001/d41e6546_1/d41e6423_1/d41e2686_1 Assertion: The response to a GetRecords request that includes an ogc:Filter having a PropertyIsGreaterThan predicate must include matching record representations. Test result:Failure Executed tests: ctl:SchematronValidatingParserFailure

Submitted request: Method=

POSTURL= http://localhost:8080/geonetwork/srv/en/cswParameters:

NONE.

Request body:

<csw:GetRecords resultType="results" service="CSW" version="2.0.2"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  xmlns:ows="http://www.opengis.net/ows"
  xmlns:p="http://teamengine.sourceforge.net/parsers"
  xmlns:gml="http://www.opengis.net/gml"
  xmlns:parsers="http://www.occamlab.com/te/parsers"
  xmlns:ogc="http://www.opengis.net/ogc"
  xmlns:saxon="http://saxon.sf.net/"
  xmlns:te="http://www.occamlab.com/te"
  xmlns:xs="http://www.w3.org/2001/XMLSchema"
  xmlns:tec="java:com.occamlab.te.TECore"
  xmlns:tems="java:com.occamlab.te.web.MonitorServlet"
  xmlns:ctl="http://www.occamlab.com/ctl"
  xmlns:xlink="http://www.w3.org/1999/xlink"
  xmlns:xi="http://www.w3.org/2001/XInclude"
  xmlns:csw="http://www.opengis.net/cat/csw/2.0.2"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:dct="http://purl.org/dc/terms/">
  <csw:Query typeNames="csw:Record">
   <csw:ElementName>dc:identifier</csw:ElementName>
   <csw:ElementName>dc:type</csw:ElementName>
   <csw:ElementName>dc:date</csw:ElementName>
   <csw:Constraint version="1.1.0">
    <ogc:Filter>
     <ogc:PropertyIsGreaterThan>
      <ogc:PropertyName>dc:date</ogc:PropertyName>
      <ogc:Literal>2004-01-01Z</ogc:Literal>
     </ogc:PropertyIsGreaterThan>
    </ogc:Filter>
   </csw:Constraint>
  </csw:Query>
 </csw:GetRecords>

test: ctl:SchematronValidatingParser

session: s0001/d41e6546_1/d41e6423_1/d41e2686_1/d41e4132_1 Assertion:Validate an XML instance against a Schematron schema using the given phase. Message Total number of errors detected: 1 Message Error 1: Line 21 - assertion failed:

csw:SearchResults/@numberOfRecordsMatched must be greater than zero.

Test result:Failure

Comment

Same as csw:csw-2.0.2-GetRecords-tc4.2 Add in config-csw.xml http://trac.osgeo.org/geonetwork/ticket/762 :

<parameter name="Date" field="createDate" type="AdditionalQueryables" />

test: csw:csw-2.0.2-GetRecords-tc10.1

session: s0001/d41e6546_1/d41e6423_1/d41e2691_1 Assertion: The response to a GetRecords request that includes an ogc:Filter having a PropertyIsLessThan predicate must include matching record representations. Test result:Failure Executed tests: ctl:SchematronValidatingParserFailure

Submitted request: Method=

POSTURL= http://localhost:8080/geonetwork/srv/en/cswParameters:

NONE.

Request body:

<csw:GetRecords resultType="results" service="CSW" version="2.0.2"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  xmlns:ows="http://www.opengis.net/ows"
  xmlns:p="http://teamengine.sourceforge.net/parsers"
  xmlns:gml="http://www.opengis.net/gml"
  xmlns:parsers="http://www.occamlab.com/te/parsers"
  xmlns:ogc="http://www.opengis.net/ogc"
  xmlns:saxon="http://saxon.sf.net/"
  xmlns:te="http://www.occamlab.com/te"
  xmlns:xs="http://www.w3.org/2001/XMLSchema"
  xmlns:tec="java:com.occamlab.te.TECore"
  xmlns:tems="java:com.occamlab.te.web.MonitorServlet"
  xmlns:ctl="http://www.occamlab.com/ctl"
  xmlns:xlink="http://www.w3.org/1999/xlink"
  xmlns:xi="http://www.w3.org/2001/XInclude"
  xmlns:csw="http://www.opengis.net/cat/csw/2.0.2"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:dct="http://purl.org/dc/terms/">
  <csw:Query typeNames="csw:Record">
   <csw:ElementName>dc:identifier</csw:ElementName>
   <csw:ElementName>dc:type</csw:ElementName>
   <csw:ElementName>dc:date</csw:ElementName>
   <csw:Constraint version="1.1.0">
    <ogc:Filter>
     <ogc:PropertyIsLessThan>
      <ogc:PropertyName>dc:date</ogc:PropertyName>
      <ogc:Literal>2006-05-01Z</ogc:Literal>
     </ogc:PropertyIsLessThan>
    </ogc:Filter>
   </csw:Constraint>
  </csw:Query>
 </csw:GetRecords>

test: ctl:SchematronValidatingParser

session: s0001/d41e6546_1/d41e6423_1/d41e2691_1/d41e4252_1 Assertion:Validate an XML instance against a Schematron schema using the given phase. Message Total number of errors detected: 1 Message Error 1: Line 21 - assertion failed:

csw:SearchResults/@numberOfRecordsMatched must be greater than zero.

Test result:Failure

Comment

Same as csw:csw-2.0.2-GetRecords-tc4.2 Add in config-csw.xml http://trac.osgeo.org/geonetwork/ticket/762 :

<parameter name="Date" field="createDate" type="AdditionalQueryables" />

test: csw:csw-2.0.2-GetRecords-tc11.2

session: s0001/d41e6546_1/d41e6423_1/d41e2702_1 Assertion: The response to a GetRecords request that includes an ogc:Filter having a PropertyIsLike predicate must include matching record representations. Message [FAILURE] AT least one csw:Record element expected in response. Test result:Failure Submitted request: Method=

POSTURL= http://localhost:8080/geonetwork/srv/en/cswParameters:

NONE.

Request body:

<csw:GetRecords resultType="results" service="CSW" version="2.0.2"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  xmlns:ows="http://www.opengis.net/ows"
  xmlns:p="http://teamengine.sourceforge.net/parsers"
  xmlns:gml="http://www.opengis.net/gml"
  xmlns:parsers="http://www.occamlab.com/te/parsers"
  xmlns:ogc="http://www.opengis.net/ogc"
  xmlns:saxon="http://saxon.sf.net/"
  xmlns:te="http://www.occamlab.com/te"
  xmlns:xs="http://www.w3.org/2001/XMLSchema"
  xmlns:tec="java:com.occamlab.te.TECore"
  xmlns:tems="java:com.occamlab.te.web.MonitorServlet"
  xmlns:ctl="http://www.occamlab.com/ctl"
  xmlns:xlink="http://www.w3.org/1999/xlink"
  xmlns:xi="http://www.w3.org/2001/XInclude"
  xmlns:csw="http://www.opengis.net/cat/csw/2.0.2"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:dct="http://purl.org/dc/terms/">
  <csw:Query typeNames="csw:Record">
   <csw:ElementSetName>full</csw:ElementSetName>
   <csw:Constraint version="1.1.0">
    <ogc:Filter>
     <ogc:PropertyIsLike escapeChar="\" singleChar="?" wildCard="*">
      <ogc:PropertyName>dc:date</ogc:PropertyName>
      <ogc:Literal>200?-10-*</ogc:Literal>
     </ogc:PropertyIsLike>
    </ogc:Filter>
   </csw:Constraint>
  </csw:Query>
 </csw:GetRecords>

Comment

Same as csw:csw-2.0.2-GetRecords-tc4.2 Add in config-csw.xml http://trac.osgeo.org/geonetwork/ticket/762 :

<parameter name="Date" field="createDate" type="AdditionalQueryables" />

test: csw:csw-2.0.2-GetRecords-tc12.1

session: s0001/d41e6546_1/d41e6423_1/d41e2707_1 Assertion: The response to a GetRecords request that includes an ogc:Filter having a PropertyIsLessThanOrEqualTo predicate must include matching record representations. Message [FAILURE] AT least two csw:Record elements expected in response. Test result:Failure Submitted request: Method=

POSTURL= http://localhost:8080/geonetwork/srv/en/cswParameters:

NONE.

Request body:

<csw:GetRecords resultType="results" service="CSW" version="2.0.2"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  xmlns:ows="http://www.opengis.net/ows"
  xmlns:p="http://teamengine.sourceforge.net/parsers"
  xmlns:gml="http://www.opengis.net/gml"
  xmlns:parsers="http://www.occamlab.com/te/parsers"
  xmlns:ogc="http://www.opengis.net/ogc"
  xmlns:saxon="http://saxon.sf.net/"
  xmlns:te="http://www.occamlab.com/te"
  xmlns:xs="http://www.w3.org/2001/XMLSchema"
  xmlns:tec="java:com.occamlab.te.TECore"
  xmlns:tems="java:com.occamlab.te.web.MonitorServlet"
  xmlns:ctl="http://www.occamlab.com/ctl"
  xmlns:xlink="http://www.w3.org/1999/xlink"
  xmlns:xi="http://www.w3.org/2001/XInclude"
  xmlns:csw="http://www.opengis.net/cat/csw/2.0.2"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:dct="http://purl.org/dc/terms/">
  <csw:Query typeNames="csw:Record">
   <csw:ElementName>dc:identifier</csw:ElementName>
   <csw:ElementName>dc:type</csw:ElementName>
   <csw:ElementName>dc:date</csw:ElementName>
   <csw:Constraint version="1.1.0">
    <ogc:Filter>
     <ogc:PropertyIsLessThanOrEqualTo>
      <ogc:PropertyName>dc:date</ogc:PropertyName>
      <ogc:Literal>2005-10-24Z</ogc:Literal>
     </ogc:PropertyIsLessThanOrEqualTo>
    </ogc:Filter>
   </csw:Constraint>
  </csw:Query>
 </csw:GetRecords>

Comment

Same as csw:csw-2.0.2-GetRecords-tc4.2 Add in config-csw.xml http://trac.osgeo.org/geonetwork/ticket/762 :

<parameter name="Date" field="createDate" type="AdditionalQueryables" />

test: csw:csw-2.0.2-GetRecords-tc13.1

session: s0001/d41e6546_1/d41e6423_1/d41e2712_1 Assertion: The response to a GetRecords request that includes an ogc:Filter having a PropertyIsGreaterThanOrEqualTo predicate must include matching record representations. Message [FAILURE] AT least two csw:Record elements expected in response. Test result:Failure Submitted request: Method=

POSTURL= http://localhost:8080/geonetwork/srv/en/cswParameters:

NONE.

Request body:

<csw:GetRecords resultType="results" service="CSW" version="2.0.2"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  xmlns:ows="http://www.opengis.net/ows"
  xmlns:p="http://teamengine.sourceforge.net/parsers"
  xmlns:gml="http://www.opengis.net/gml"
  xmlns:parsers="http://www.occamlab.com/te/parsers"
  xmlns:ogc="http://www.opengis.net/ogc"
  xmlns:saxon="http://saxon.sf.net/"
  xmlns:te="http://www.occamlab.com/te"
  xmlns:xs="http://www.w3.org/2001/XMLSchema"
  xmlns:tec="java:com.occamlab.te.TECore"
  xmlns:tems="java:com.occamlab.te.web.MonitorServlet"
  xmlns:ctl="http://www.occamlab.com/ctl"
  xmlns:xlink="http://www.w3.org/1999/xlink"
  xmlns:xi="http://www.w3.org/2001/XInclude"
  xmlns:csw="http://www.opengis.net/cat/csw/2.0.2"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:dct="http://purl.org/dc/terms/">
  <csw:Query typeNames="csw:Record">
   <csw:ElementName>dc:identifier</csw:ElementName>
   <csw:ElementName>dc:type</csw:ElementName>
   <csw:ElementName>dc:date</csw:ElementName>
   <csw:Constraint version="1.1.0">
    <ogc:Filter>
     <ogc:PropertyIsGreaterThanOrEqualTo>
      <ogc:PropertyName>dc:date</ogc:PropertyName>
      <ogc:Literal>2006-03-26Z</ogc:Literal>
     </ogc:PropertyIsGreaterThanOrEqualTo>
    </ogc:Filter>
   </csw:Constraint>
  </csw:Query>
 </csw:GetRecords>

Comment

Same as csw:csw-2.0.2-GetRecords-tc4.2 Add in config-csw.xml http://trac.osgeo.org/geonetwork/ticket/762 :

<parameter name="Date" field="createDate" type="AdditionalQueryables" />

test: csw:csw-2.0.2-GetRecords-tc14.2

session: s0001/d41e6546_1/d41e6423_1/d41e2722_1 Assertion: The response to a GetRecords request that includes an ogc:Filter having a Not logical predicate must include only matching record representations. Message [FAILURE] Missing or invalid response entity. Test result:Failure Submitted request: Method=

POSTURL= http://localhost:8080/geonetwork/srv/en/cswParameters:

NONE.

Request body:

<csw:GetRecords maxRecords="20" resultType="results" service="CSW" version="2.0.2"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  xmlns:ows="http://www.opengis.net/ows"
  xmlns:p="http://teamengine.sourceforge.net/parsers"
  xmlns:gml="http://www.opengis.net/gml"
  xmlns:parsers="http://www.occamlab.com/te/parsers"
  xmlns:ogc="http://www.opengis.net/ogc"
  xmlns:saxon="http://saxon.sf.net/"
  xmlns:te="http://www.occamlab.com/te"
  xmlns:xs="http://www.w3.org/2001/XMLSchema"
  xmlns:tec="java:com.occamlab.te.TECore"
  xmlns:tems="java:com.occamlab.te.web.MonitorServlet"
  xmlns:ctl="http://www.occamlab.com/ctl"
  xmlns:xlink="http://www.w3.org/1999/xlink"
  xmlns:xi="http://www.w3.org/2001/XInclude"
  xmlns:csw="http://www.opengis.net/cat/csw/2.0.2"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:dct="http://purl.org/dc/terms/">
  <csw:Query typeNames="csw:Record">
   <csw:ElementName>dc:identifier</csw:ElementName>
   <csw:ElementName>ows:BoundingBox</csw:ElementName>
   <csw:Constraint version="1.1.0">
    <ogc:Filter>
     <ogc:Not>
      <ogc:BBOX>
       <ogc:PropertyName>ows:BoundingBox</ogc:PropertyName>
       <gml:Envelope srsName="urn:x-ogc:def:crs:EPSG:6.11:4326">
        <gml:lowerCorner>60.0 12.0</gml:lowerCorner>
        <gml:upperCorner>70.0 20.0</gml:upperCorner>
       </gml:Envelope>
      </ogc:BBOX>
     </ogc:Not>
    </ogc:Filter>
   </csw:Constraint>
  </csw:Query>
 </csw:GetRecords>

Comment

On the test dataset, only 3 records have a bounding box. Only 2 of them are matching the spatial condition. And GeoNetwork does not consider records not having a bounding box to be part of this query because they don't have a property BoundingBox.

Testsuite expect: "11-20 csw:Record elements expected in response"

Minor improvement done: http://trac.osgeo.org/geonetwork/ticket/761

test: csw:csw-2.0.2-GetRecords-tc16.2

session: s0001/d41e6546_1/d41e6423_1/d41e2738_1 Assertion: The response to a GetRecords request that includes an ogc:Filter having the Or logical predicate must include only matching record representations. Message [FAILURE] Missing or invalid response entity. Test result:Failure Submitted request: Method=

POSTURL= http://localhost:8080/geonetwork/srv/en/cswParameters:

NONE.

Request body:

<csw:GetRecords resultType="results" service="CSW" version="2.0.2"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  xmlns:ows="http://www.opengis.net/ows"
  xmlns:p="http://teamengine.sourceforge.net/parsers"
  xmlns:gml="http://www.opengis.net/gml"
  xmlns:parsers="http://www.occamlab.com/te/parsers"
  xmlns:ogc="http://www.opengis.net/ogc"
  xmlns:saxon="http://saxon.sf.net/"
  xmlns:te="http://www.occamlab.com/te"
  xmlns:xs="http://www.w3.org/2001/XMLSchema"
  xmlns:tec="java:com.occamlab.te.TECore"
  xmlns:tems="java:com.occamlab.te.web.MonitorServlet"
  xmlns:ctl="http://www.occamlab.com/ctl"
  xmlns:xlink="http://www.w3.org/1999/xlink"
  xmlns:xi="http://www.w3.org/2001/XInclude"
  xmlns:csw="http://www.opengis.net/cat/csw/2.0.2"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:dct="http://purl.org/dc/terms/">
  <csw:Query typeNames="csw:Record">
   <csw:ElementName>dc:identifier</csw:ElementName>
   <csw:ElementName>dc:date</csw:ElementName>
   <csw:ElementName>ows:BoundingBox</csw:ElementName>
   <csw:Constraint version="1.1.0">
    <ogc:Filter>
     <ogc:Or>
      <ogc:BBOX>
       <ogc:PropertyName>ows:BoundingBox</ogc:PropertyName>
       <gml:Envelope srsName="urn:x-ogc:def:crs:EPSG:6.11:4326">
        <gml:lowerCorner>47.0 -4.5</gml:lowerCorner>
        <gml:upperCorner>52.0 1.0</gml:upperCorner>
       </gml:Envelope>
      </ogc:BBOX>
      <ogc:PropertyIsGreaterThan>
       <ogc:PropertyName>dc:date</ogc:PropertyName>
       <ogc:Literal>2006-01-01Z</ogc:Literal>
      </ogc:PropertyIsGreaterThan>
     </ogc:Or>
    </ogc:Filter>
   </csw:Constraint>
  </csw:Query>
 </csw:GetRecords>

Comment

In GeoNetwork, spatial criteria is applied as a Lucene filter after Lucene search. This makes the spatial filter a AND operator. Combining complex AND/OR with spatial filter requires to make the spatial search part of Lucene Core Query types. This is a non-trivial task.

test: csw:csw-2.0.2-GetRecords-tc17.1

session: s0001/d41e6546_1/d41e6423_1/d41e2743_1 Assertion: The response to a GetRecords request that includes an ogc:Filter having the And logical predicate must include only matching record representations. Message [FAILURE] 1-10 csw:SummaryRecord elements expected in response (0 included) Test result:Failure Submitted request: Method=

POSTURL= http://localhost:8080/geonetwork/srv/en/cswParameters:

NONE.

Request body:

<csw:GetRecords resultType="results" service="CSW" version="2.0.2"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  xmlns:ows="http://www.opengis.net/ows"
  xmlns:p="http://teamengine.sourceforge.net/parsers"
  xmlns:gml="http://www.opengis.net/gml"
  xmlns:parsers="http://www.occamlab.com/te/parsers"
  xmlns:ogc="http://www.opengis.net/ogc"
  xmlns:saxon="http://saxon.sf.net/"
  xmlns:te="http://www.occamlab.com/te"
  xmlns:xs="http://www.w3.org/2001/XMLSchema"
  xmlns:tec="java:com.occamlab.te.TECore"
  xmlns:tems="java:com.occamlab.te.web.MonitorServlet"
  xmlns:ctl="http://www.occamlab.com/ctl"
  xmlns:xlink="http://www.w3.org/1999/xlink"
  xmlns:xi="http://www.w3.org/2001/XInclude"
  xmlns:csw="http://www.opengis.net/cat/csw/2.0.2"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:dct="http://purl.org/dc/terms/">
  <csw:Query typeNames="csw:Record">
   <csw:ElementSetName>summary</csw:ElementSetName>
   <csw:Constraint version="1.1.0">
    <ogc:Filter>
     <ogc:And>
      <ogc:PropertyIsLike escapeChar="\" singleChar="?" wildCard="*">
       <ogc:PropertyName>dc:format</ogc:PropertyName>
       <ogc:Literal>image/*</ogc:Literal>
      </ogc:PropertyIsLike>
      <ogc:PropertyIsEqualTo>
       <ogc:PropertyName>dc:relation</ogc:PropertyName>
       <ogc:Literal>urn:uuid:9a669547-b69b-469f-a11f-2d875366bbdc</ogc:Literal>
      </ogc:PropertyIsEqualTo>
     </ogc:And>
    </ogc:Filter>
   </csw:Constraint>
  </csw:Query>
 </csw:GetRecords>

Comment

Add in config-csw.xml http://trac.osgeo.org/geonetwork/ticket/762 :

  <parameter name="Relation" field="relation" type="AdditionalQueryables" />

test: csw:csw-2.0.2-GetRecords-tc17.2

session: s0001/d41e6546_1/d41e6423_1/d41e2748_1 Assertion: The response to a GetRecords request that includes an ogc:Filter having the And logical predicate must include only matching record representations. Message [FAILURE] 1-10 csw:Record elements expected in response (0 included) Test result:Failure Submitted request: Method=

POSTURL= http://localhost:8080/geonetwork/srv/en/cswParameters:

NONE.

Request body:

<csw:GetRecords resultType="results" service="CSW" version="2.0.2"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  xmlns:ows="http://www.opengis.net/ows"
  xmlns:p="http://teamengine.sourceforge.net/parsers"
  xmlns:gml="http://www.opengis.net/gml"
  xmlns:parsers="http://www.occamlab.com/te/parsers"
  xmlns:ogc="http://www.opengis.net/ogc"
  xmlns:saxon="http://saxon.sf.net/"
  xmlns:te="http://www.occamlab.com/te"
  xmlns:xs="http://www.w3.org/2001/XMLSchema"
  xmlns:tec="java:com.occamlab.te.TECore"
  xmlns:tems="java:com.occamlab.te.web.MonitorServlet"
  xmlns:ctl="http://www.occamlab.com/ctl"
  xmlns:xlink="http://www.w3.org/1999/xlink"
  xmlns:xi="http://www.w3.org/2001/XInclude"
  xmlns:csw="http://www.opengis.net/cat/csw/2.0.2"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:dct="http://purl.org/dc/terms/">
  <csw:Query typeNames="csw:Record">
   <csw:ElementName>dc:identifier</csw:ElementName>
   <csw:ElementName>dc:date</csw:ElementName>
   <csw:ElementName>ows:BoundingBox</csw:ElementName>
   <csw:Constraint version="1.1.0">
    <ogc:Filter>
     <ogc:And>
      <ogc:BBOX>
       <ogc:PropertyName>ows:BoundingBox</ogc:PropertyName>
       <gml:Envelope srsName="urn:x-ogc:def:crs:EPSG:6.11:4326">
        <gml:lowerCorner>47.0 -4.5</gml:lowerCorner>
        <gml:upperCorner>52.0 1.0</gml:upperCorner>
       </gml:Envelope>
      </ogc:BBOX>
      <ogc:PropertyIsGreaterThan>
       <ogc:PropertyName>dc:date</ogc:PropertyName>
       <ogc:Literal>2006-01-01Z</ogc:Literal>
      </ogc:PropertyIsGreaterThan>
     </ogc:And>
    </ogc:Filter>
   </csw:Constraint>
  </csw:Query>
 </csw:GetRecords>

Comment

Same as csw:csw-2.0.2-GetRecords-tc4.2 Add in config-csw.xml http://trac.osgeo.org/geonetwork/ticket/762 :

<parameter name="Date" field="createDate" type="AdditionalQueryables" />

test: csw:csw-2.0.2-GetRecords-tc18.1

session: s0001/d41e6546_1/d41e6423_1/d41e2753_1 Assertion: The response to a GetRecords request that includes an ogc:Filter having the And logical predicate must include the specified view of records that satisfy all constraints. Message [FAILURE] 1-10 csw:Record elements expected in response (0 included) Test result:Failure Submitted request: Method=

POSTURL= http://localhost:8080/geonetwork/srv/en/cswParameters:

NONE.

Request body:

<csw:GetRecords resultType="results" service="CSW" version="2.0.2"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  xmlns:ows="http://www.opengis.net/ows"
  xmlns:p="http://teamengine.sourceforge.net/parsers"
  xmlns:gml="http://www.opengis.net/gml"
  xmlns:parsers="http://www.occamlab.com/te/parsers"
  xmlns:ogc="http://www.opengis.net/ogc"
  xmlns:saxon="http://saxon.sf.net/"
  xmlns:te="http://www.occamlab.com/te"
  xmlns:xs="http://www.w3.org/2001/XMLSchema"
  xmlns:tec="java:com.occamlab.te.TECore"
  xmlns:tems="java:com.occamlab.te.web.MonitorServlet"
  xmlns:ctl="http://www.occamlab.com/ctl"
  xmlns:xlink="http://www.w3.org/1999/xlink"
  xmlns:xi="http://www.w3.org/2001/XInclude"
  xmlns:csw="http://www.opengis.net/cat/csw/2.0.2"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:dct="http://purl.org/dc/terms/">
  <csw:Query typeNames="csw:Record">
   <csw:ElementName>dc:identifier</csw:ElementName>
   <csw:ElementName>dc:type</csw:ElementName>
   <csw:ElementName>ows:BoundingBox</csw:ElementName>
   <csw:Constraint version="1.1.0">
    <ogc:Filter>
     <ogc:And>
      <ogc:Not>
       <ogc:BBOX>
        <ogc:PropertyName>ows:BoundingBox</ogc:PropertyName>
        <gml:Envelope srsName="urn:x-ogc:def:crs:EPSG:6.11:4326">
         <gml:lowerCorner>40.0 -9.0</gml:lowerCorner>
         <gml:upperCorner>50.0 -5.0</gml:upperCorner>
        </gml:Envelope>
       </ogc:BBOX>
      </ogc:Not>
      <ogc:PropertyIsEqualTo matchCase="false">
       <ogc:PropertyName>dc:type</ogc:PropertyName>
       <ogc:Literal>HTTP://purl.org/dc/dcmitype/dataset</ogc:Literal>
      </ogc:PropertyIsEqualTo>
     </ogc:And>
    </ogc:Filter>
   </csw:Constraint>
  </csw:Query>
 </csw:GetRecords>

Comment

Issue related to matchCase. Works with:

<ogc:PropertyIsEqualTo matchCase="false">
       <ogc:PropertyName>dc:type</ogc:PropertyName>
       <ogc:Literal>http://purl.org/dc/dcmitype/Dataset</ogc:Literal>
      </ogc:PropertyIsEqualTo>

A StandardAnalyzer should fix it ?

test: csw:csw-2.0.2-GetRecords-tc20.1

session: s0001/d41e6546_1/d41e6423_1/d41e2764_1 Assertion: The csw:SummaryRecord view type cannot be queried. The response shall include an exception having @exceptionCode = &quot;InvalidParameterValue&quot; [10.2.5.3.3]. Message [FAILURE] Missing or invalid response entity. Test result:Failure Submitted request: Method=

POSTURL= http://localhost:8080/geonetwork/srv/en/cswParameters:

NONE.

Request body:

<csw:GetRecords resultType="results" service="CSW" version="2.0.2"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  xmlns:ows="http://www.opengis.net/ows"
  xmlns:p="http://teamengine.sourceforge.net/parsers"
  xmlns:gml="http://www.opengis.net/gml"
  xmlns:parsers="http://www.occamlab.com/te/parsers"
  xmlns:ogc="http://www.opengis.net/ogc"
  xmlns:saxon="http://saxon.sf.net/"
  xmlns:te="http://www.occamlab.com/te"
  xmlns:xs="http://www.w3.org/2001/XMLSchema"
  xmlns:tec="java:com.occamlab.te.TECore"
  xmlns:tems="java:com.occamlab.te.web.MonitorServlet"
  xmlns:ctl="http://www.occamlab.com/ctl"
  xmlns:xlink="http://www.w3.org/1999/xlink"
  xmlns:xi="http://www.w3.org/2001/XInclude"
  xmlns:csw="http://www.opengis.net/cat/csw/2.0.2"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:dct="http://purl.org/dc/terms/">
  <csw:Query typeNames="csw:SummaryRecord">
   <csw:ElementSetName>summary</csw:ElementSetName>
   <csw:Constraint version="1.1.0">
    <ogc:Filter>
     <ogc:PropertyIsLike escapeChar="\" singleChar="." wildCard="*">
      <ogc:PropertyName>/dc:title</ogc:PropertyName>
      <ogc:Literal>*lorem*</ogc:Literal>
     </ogc:PropertyIsLike>
    </ogc:Filter>
   </csw:Constraint>
  </csw:Query>
 </csw:GetRecords>

Comment

Typename defines "queryable entities in the catalogue's information model". In GeoNetwork, all entities are available and mapping may exist from one type to another.

test: csw:csw-2.0.2-GetRecords-tc21.1

session: s0001/d41e6546_1/d41e6423_1/d41e2769_1 Assertion: The csw:BriefRecord view type cannot be queried. The response shall include an exception having @exceptionCode = &quot;InvalidParameterValue&quot; [10.2.5.3.4]. Message [FAILURE] Missing or invalid response entity. Test result:Failure Submitted request: Method=

POSTURL= http://localhost:8080/geonetwork/srv/en/cswParameters:

NONE.

Request body:

<csw:GetRecordsresultType="results"service="CSW"version="2.0.2"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  xmlns:ows="http://www.opengis.net/ows"
  xmlns:p="http://teamengine.sourceforge.net/parsers"
  xmlns:gml="http://www.opengis.net/gml"
  xmlns:parsers="http://www.occamlab.com/te/parsers"
  xmlns:ogc="http://www.opengis.net/ogc"
  xmlns:saxon="http://saxon.sf.net/"
  xmlns:te="http://www.occamlab.com/te"
  xmlns:xs="http://www.w3.org/2001/XMLSchema"
  xmlns:tec="java:com.occamlab.te.TECore"
  xmlns:tems="java:com.occamlab.te.web.MonitorServlet"
  xmlns:ctl="http://www.occamlab.com/ctl"
  xmlns:xlink="http://www.w3.org/1999/xlink"
  xmlns:xi="http://www.w3.org/2001/XInclude"
  xmlns:csw="http://www.opengis.net/cat/csw/2.0.2"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:dct="http://purl.org/dc/terms/">
  <csw:QuerytypeNames="csw:BriefRecord">
   <csw:ElementSetName>brief</csw:ElementSetName>
   <csw:Constraintversion="1.1.0">
    <ogc:Filter>
     <ogc:PropertyIsLikeescapeChar="\"singleChar="."wildCard="*">
      <ogc:PropertyName>/dc:title</ogc:PropertyName>
      <ogc:Literal>*lorem*</ogc:Literal>
     </ogc:PropertyIsLike>
    </ogc:Filter>
   </csw:Constraint>
  </csw:Query>
 </csw:GetRecords>

Comment

Typename defines "queryable entities in the catalogue's information model". In GeoNetwork, all entities are available and mapping may exist from one type to another.

See [GeoNetwork-users] GeoNetwork Harvest: CSW node error on the ML for discussion about outputSchema.

Test execution report - CSW 2.0.2 AP ISO

TODO

GeoNetwork 2.4.x

  • See CSW.
  • Tested in 2009
  • One test failed: GetRecords-ValidFilter due to Spatial Filter embedded in an OR statement. Require more changes to spatial searcher.

CSW 2.0.2 ISO AP

Test csw:csw-main (s0002) Failed (Inherited Failure)
   Test csw:level1.1 (s0002/w8aab3b3c65b3b1_1) Passed
      Test csw:InterfaceBindings.GetCapabilities-GetMethod (s0002/w8aab3b3c65b3b1_1/w15aab1b5c17_1) Passed
      Test csw:InterfaceBindings.GetRecords-SOAPPOSTMethod (s0002/w8aab3b3c65b3b1_1/w15aab1b5c19_1) Passed
      Test csw:InterfaceBindings.GetRecordById-SOAPMethod (s0002/w8aab3b3c65b3b1_1/w15aab1b5c21_1) Passed
      Test csw:InterfaceBindings.GetRecordById-GETMethod (s0002/w8aab3b3c65b3b1_1/w15aab1b5c23_1) Passed
      Test csw:InterfaceBindings.DescribeRecord-SOAPPOSTMethod (s0002/w8aab3b3c65b3b1_1/w15aab1b5c25_1) Passed
      Test csw:InterfaceBindings.GetRecords-InvalidRequest (s0002/w8aab3b3c65b3b1_1/w15aab1b5c27_1) Passed
      Test csw:InterfaceBindings.GetRecordById-InvalidVersion (s0002/w8aab3b3c65b3b1_1/w15aab1b5c29_1) Passed
   Test csw:level1.2 (s0002/w8aab3b3c65b3b3_1) Failed (Inherited Failure)
      Test csw:CorrectRequestResponse.GetCapabilities-CapabilitiesDocument (s0002/w8aab3b3c65b3b3_1/w8aab1b5c17_1) Passed
         Test ctl:XMLValidatingParser (s0002/w8aab3b3c65b3b3_1/w8aab1b5c17_1/w8aab3b7b3_1) Passed
      Test csw:CorrectRequestResponse.GetRecords-ValidResponseStructures (s0002/w8aab3b3c65b3b3_1/w8aab1b5c19_1) Passed
         Test ctl:XMLValidatingParser (s0002/w8aab3b3c65b3b3_1/w8aab1b5c19_1/w8aab5b7b5b1_1) Passed
         Test ctl:XMLValidatingParser (s0002/w8aab3b3c65b3b3_1/w8aab1b5c19_1/w8aab5b7b5b1_2) Passed
         Test ctl:XMLValidatingParser (s0002/w8aab3b3c65b3b3_1/w8aab1b5c19_1/w8aab5b7b7_1) Passed
      Test csw:CorrectRequestResponse.GetRecords-ValidFilter (s0002/w8aab3b3c65b3b3_1/w8aab1b5c21_1) Failed
         Test csw:CorrectRequestResponse.GetRecordById-ValidResponseStructures (s0002/w8aab3b3c65b3b3_1/w8aab1b5c21_1/w8aab9b9b7_1) Passed
            Test ctl:XMLValidatingParser (s0002/w8aab3b3c65b3b3_1/w8aab1b5c21_1/w8aab9b9b7_1/w8aac11b9b3_1) Passed
            Test ctl:XMLValidatingParser (s0002/w8aab3b3c65b3b3_1/w8aab1b5c21_1/w8aab9b9b7_1/w8aac11b9b5_1) Passed
      Test csw:InterfaceBindings.DescribeRecord-ValidResponseStructure (s0002/w8aab3b3c65b3b3_1/w8aab1b5c23_1) Passed
         Test ctl:XMLValidatingParser (s0002/w8aab3b3c65b3b3_1/w8aab1b5c23_1/w8aac13b7b3_1) Passed
   Test csw:level1.3 (s0002/w8aab3b3c65b3b5_1) Passed
      Test csw:CorrectRequestResponse.GetCapabilities-CapabilitiesDocumentContent (s0002/w8aab3b3c65b3b5_1/w8aab1b5c17_1) Passed
         Test ctl:XMLValidatingParser (s0002/w8aab3b3c65b3b5_1/w8aab1b5c17_1/w8aab3b7b3_1) Passed
      Test csw:CorrectRequestResponse.GetRecords-AnyTextFilter (s0002/w8aab3b3c65b3b5_1/w8aab1b5c19_1) Passed
         Test ctl:XMLValidatingParser (s0002/w8aab3b3c65b3b5_1/w8aab1b5c19_1/w8aab5b7b9b1_1) Passed
         Test ctl:XMLValidatingParser (s0002/w8aab3b3c65b3b5_1/w8aab1b5c19_1/w8aab5b7b9b1_2) Passed
         Test ctl:XMLValidatingParser (s0002/w8aab3b3c65b3b5_1/w8aab1b5c19_1/w8aab5b7c11_1) Passed
      Test csw:CorrectRequestResponse.GetRecords-AndOrFilter (s0002/w8aab3b3c65b3b5_1/w8aab1b5c21_1) Passed
         Test ctl:XMLValidatingParser (s0002/w8aab3b3c65b3b5_1/w8aab1b5c21_1/w8aab7b7b9b1_1) Passed
         Test ctl:XMLValidatingParser (s0002/w8aab3b3c65b3b5_1/w8aab1b5c21_1/w8aab7b7c11_1) Passed
      Test csw:CorrectRequestResponse.GetRecords-BBOXFilter (s0002/w8aab3b3c65b3b5_1/w8aab1b5c23_1) Passed
         Test ctl:XMLValidatingParser (s0002/w8aab3b3c65b3b5_1/w8aab1b5c23_1/w8aab9b7b9b1_1) Passed
         Test ctl:XMLValidatingParser (s0002/w8aab3b3c65b3b5_1/w8aab1b5c23_1/w8aab9b7b9b1_2) Passed
         Test ctl:XMLValidatingParser (s0002/w8aab3b3c65b3b5_1/w8aab1b5c23_1/w8aab9b7b9b1_3) Passed
         Test ctl:XMLValidatingParser (s0002/w8aab3b3c65b3b5_1/w8aab1b5c23_1/w8aab9b7c11_1) Passed
      Test csw:CorrectRequestResponse.GetRecords-CollectionElementsFilter (s0002/w8aab3b3c65b3b5_1/w8aab1b5c25_1) Passed
         Test ctl:XMLValidatingParser (s0002/w8aab3b3c65b3b5_1/w8aab1b5c25_1/w8aac11b7b9b1_1) Passed
         Test ctl:XMLValidatingParser (s0002/w8aab3b3c65b3b5_1/w8aab1b5c25_1/w8aac11b7b9b1_2) Passed
         Test ctl:XMLValidatingParser (s0002/w8aab3b3c65b3b5_1/w8aab1b5c25_1/w8aac11b7c11_1) Passed
      Test csw:CorrectRequestResponse.GetRecordById-Full (s0002/w8aab3b3c65b3b5_1/w8aab1b5c27_1) Passed
         Test ctl:XMLValidatingParser (s0002/w8aab3b3c65b3b5_1/w8aab1b5c27_1/w8aac13b7c11b1_1) Passed
         Test ctl:XMLValidatingParser (s0002/w8aab3b3c65b3b5_1/w8aab1b5c27_1/w8aac13b7c13_1) Passed
      Test csw:CorrectRequestResponse.GetRecordById-GetKVPBrief (s0002/w8aab3b3c65b3b5_1/w8aab1b5c29_1) Passed
         Test ctl:XMLValidatingParser (s0002/w8aab3b3c65b3b5_1/w8aab1b5c29_1/w8aac15b7c11b1_1) Passed
         Test ctl:XMLValidatingParser (s0002/w8aab3b3c65b3b5_1/w8aab1b5c29_1/w8aac15b7c13_1) Passed
   Test csw:level1.4 (s0002/w8aab3b3c65b3b7_1) Passed
      Test csw:CorrectRequestResponse.GetRecords-ServicesFilter (s0002/w8aab3b3c65b3b7_1/w43aab1b5c17_1) Passed
         Test ctl:XMLValidatingParser (s0002/w8aab3b3c65b3b7_1/w43aab1b5c17_1/w43aab3b7b9b1_1) Passed
         Test ctl:XMLValidatingParser (s0002/w8aab3b3c65b3b7_1/w43aab1b5c17_1/w43aab3b7c11_1) Passed
      Test csw:CorrectRequestResponse.GetRecords-ServicesOpOnFilter (s0002/w8aab3b3c65b3b7_1/w43aab1b5c19_1) Passed
         Test ctl:XMLValidatingParser (s0002/w8aab3b3c65b3b7_1/w43aab1b5c19_1/w43aab5b7b9b1_1) Passed
         Test ctl:XMLValidatingParser (s0002/w8aab3b3c65b3b7_1/w43aab1b5c19_1/w43aab5b7b9b1_2) Passed
         Test ctl:XMLValidatingParser (s0002/w8aab3b3c65b3b7_1/w43aab1b5c19_1/w43aab5b7c11_1) Passed
   Test csw:level1.5 (s0002/w8aab3b3c65b3b9_1) Passed
      Test csw:MultiLanguage.GetRecords-MultiLingual (s0002/w8aab3b3c65b3b9_1/w24aab1b5c17_1) Passed

CSW 2.0.2

Test csw:Main (s0006) Failed (Inherited Failure)
   Test csw:SmokeTest (s0006/d39e6538_1) Passed
      Test ctl:SchematronValidatingParser (s0006/d39e6538_1/d39e6568_1) Passed
   Test csw:capability-tests (s0006/d39e6546_1) Failed (Inherited Failure)
      Test csw:GetCapabilities-GET (s0006/d39e6546_1/d39e6408_1) Passed
         Test csw:csw-2.0.2-GetCapabilities-tc1.1 (s0006/d39e6546_1/d39e6408_1/d39e383_1) Passed
            Test ctl:SchematronValidatingParser (s0006/d39e6546_1/d39e6408_1/d39e383_1/d39e498_1) Passed
         Test csw:csw-2.0.2-GetCapabilities-tc1.2 (s0006/d39e6546_1/d39e6408_1/d39e388_1) Passed
            Test ctl:SchematronValidatingParser (s0006/d39e6546_1/d39e6408_1/d39e388_1/d39e566_1) Passed
         Test csw:csw-2.0.2-GetCapabilities-tc1.3 (s0006/d39e6546_1/d39e6408_1/d39e393_1) Passed
            Test ctl:SchematronValidatingParser (s0006/d39e6546_1/d39e6408_1/d39e393_1/d39e634_1) Passed
         Test csw:csw-2.0.2-GetCapabilities-tc2.1 (s0006/d39e6546_1/d39e6408_1/d39e399_1) Passed
            Test ctl:SchematronValidatingParser (s0006/d39e6546_1/d39e6408_1/d39e399_1/d39e695_1) Passed
         Test csw:csw-2.0.2-GetCapabilities-tc3.1 (s0006/d39e6546_1/d39e6408_1/d39e404_1) Passed
            Test ctl:SchematronValidatingParser (s0006/d39e6546_1/d39e6408_1/d39e404_1/d39e768_1) Passed
         Test csw:csw-2.0.2-GetCapabilities-tc4.1 (s0006/d39e6546_1/d39e6408_1/d39e409_1) Passed
            Test ctl:SchematronValidatingParser (s0006/d39e6546_1/d39e6408_1/d39e409_1/d39e841_1) Passed
         Test csw:csw-2.0.2-GetCapabilities-tc5.1 (s0006/d39e6546_1/d39e6408_1/d39e414_1) Passed
            Test ctl:SchematronValidatingParser (s0006/d39e6546_1/d39e6408_1/d39e414_1/d39e909_1) Passed
         Test csw:csw-2.0.2-GetCapabilities-tc5.2 (s0006/d39e6546_1/d39e6408_1/d39e419_1) Passed
            Test ctl:SchematronValidatingParser (s0006/d39e6546_1/d39e6408_1/d39e419_1/d39e971_1) Passed
         Test csw:csw-2.0.2-GetCapabilities-tc6.1 (s0006/d39e6546_1/d39e6408_1/d39e424_1) Passed
         Test csw:csw-2.0.2-GetCapabilities-tc7.1 (s0006/d39e6546_1/d39e6408_1/d39e430_1) Passed
            Test ctl:SchematronValidatingParser (s0006/d39e6546_1/d39e6408_1/d39e430_1/d39e1103_1) Passed
         Test csw:csw-2.0.2-GetCapabilities-tc7.2 (s0006/d39e6546_1/d39e6408_1/d39e435_1) Passed
         Test csw:csw-2.0.2-GetCapabilities-tc8.1 (s0006/d39e6546_1/d39e6408_1/d39e440_1) Passed
      Test csw:DescribeRecord-POST (s0006/d39e6546_1/d39e6413_1) Passed
         Test csw:csw-2.0.2-DescribeRecord-tc1.1 (s0006/d39e6546_1/d39e6413_1/d39e1282_1) Passed
            Test ctl:SchematronValidatingParser (s0006/d39e6546_1/d39e6413_1/d39e1282_1/d39e1365_1) Passed
         Test csw:csw-2.0.2-DescribeRecord-tc2.1 (s0006/d39e6546_1/d39e6413_1/d39e1287_1) Passed
            Test ctl:SchematronValidatingParser (s0006/d39e6546_1/d39e6413_1/d39e1287_1/d39e1429_1) Passed
         Test csw:csw-2.0.2-DescribeRecord-tc3.1 (s0006/d39e6546_1/d39e6413_1/d39e1292_1) Passed
            Test ctl:SchematronValidatingParser (s0006/d39e6546_1/d39e6413_1/d39e1292_1/d39e1505_1) Passed
         Test csw:csw-2.0.2-DescribeRecord-tc4.1 (s0006/d39e6546_1/d39e6413_1/d39e1298_1) Passed
         Test csw:csw-2.0.2-DescribeRecord-tc5.1 (s0006/d39e6546_1/d39e6413_1/d39e1303_1) Passed
            Test ctl:SchematronValidatingParser (s0006/d39e6546_1/d39e6413_1/d39e1303_1/d39e1638_1) Passed
         Test csw:csw-2.0.2-DescribeRecord-tc6.1 (s0006/d39e6546_1/d39e6413_1/d39e1308_1) Passed
            Test ctl:SchematronValidatingParser (s0006/d39e6546_1/d39e6413_1/d39e1308_1/d39e1710_1) Passed
         Test csw:csw-2.0.2-DescribeRecord-tc7.1 (s0006/d39e6546_1/d39e6413_1/d39e1313_1) Passed
            Test ctl:SchematronValidatingParser (s0006/d39e6546_1/d39e6413_1/d39e1313_1/d39e1782_1) Passed
      Test csw:GetRecordById-GET (s0006/d39e6546_1/d39e6418_1) Passed
         Test csw:csw-2.0.2-GetRecordById-tc1.1 (s0006/d39e6546_1/d39e6418_1/d39e1823_1) Passed
         Test csw:csw-2.0.2-GetRecordById-tc1.2 (s0006/d39e6546_1/d39e6418_1/d39e1830_1) Passed
         Test csw:csw-2.0.2-GetRecordById-tc2.1 (s0006/d39e6546_1/d39e6418_1/d39e1838_1) Passed
         Test csw:csw-2.0.2-GetRecordById-tc2.2 (s0006/d39e6546_1/d39e6418_1/d39e1845_1) Passed
         Test csw:csw-2.0.2-GetRecordById-tc3.1 (s0006/d39e6546_1/d39e6418_1/d39e1852_1) Passed
         Test csw:csw-2.0.2-GetRecordById-tc4.1 (s0006/d39e6546_1/d39e6418_1/d39e1857_1) Passed
            Test ctl:SchematronValidatingParser (s0006/d39e6546_1/d39e6418_1/d39e1857_1/d39e2417_1) Passed
         Test csw:csw-2.0.2-GetRecordById-tc5.1 (s0006/d39e6546_1/d39e6418_1/d39e1862_1) Passed
            Test ctl:SchematronValidatingParser (s0006/d39e6546_1/d39e6418_1/d39e1862_1/d39e2496_1) Passed
         Test csw:csw-2.0.2-GetRecordById-tc6.1 (s0006/d39e6546_1/d39e6418_1/d39e1867_1) Passed
            Test ctl:SchematronValidatingParser (s0006/d39e6546_1/d39e6418_1/d39e1867_1/d39e2575_1) Passed
      Test csw:GetRecords-POST (s0006/d39e6546_1/d39e6423_1) Failed (Inherited Failure)
         Test csw:csw-2.0.2-GetRecords-tc1.1 (s0006/d39e6546_1/d39e6423_1/d39e2619_1) Passed
            Test ctl:SchematronValidatingParser (s0006/d39e6546_1/d39e6423_1/d39e2619_1/d39e2854_1) Passed
         Test csw:csw-2.0.2-GetRecords-tc2.1 (s0006/d39e6546_1/d39e6423_1/d39e2624_1) Passed
            Test ctl:SchematronValidatingParser (s0006/d39e6546_1/d39e6423_1/d39e2624_1/d39e2921_1) Passed
         Test csw:csw-2.0.2-GetRecords-tc2.2 (s0006/d39e6546_1/d39e6423_1/d39e2629_1) Passed
            Test ctl:SchematronValidatingParser (s0006/d39e6546_1/d39e6423_1/d39e2629_1/d39e2996_1) Passed
         Test csw:csw-2.0.2-GetRecords-tc3.1 (s0006/d39e6546_1/d39e6423_1/d39e2635_1) Passed
         Test csw:csw-2.0.2-GetRecords-tc4.1 (s0006/d39e6546_1/d39e6423_1/d39e2640_1) Passed
            Test ctl:SchematronValidatingParser (s0006/d39e6546_1/d39e6423_1/d39e2640_1/d39e3163_1) Passed
         Test csw:csw-2.0.2-GetRecords-tc4.2 (s0006/d39e6546_1/d39e6423_1/d39e2645_1) Passed
         Test csw:csw-2.0.2-GetRecords-tc5.1 (s0006/d39e6546_1/d39e6423_1/d39e2650_1) Passed
            Test ctl:SchematronValidatingParser (s0006/d39e6546_1/d39e6423_1/d39e2650_1/d39e3476_1) Passed
         Test csw:csw-2.0.2-GetRecords-tc5.2 (s0006/d39e6546_1/d39e6423_1/d39e2655_1) Failed
         Test csw:csw-2.0.2-GetRecords-tc6.1 (s0006/d39e6546_1/d39e6423_1/d39e2660_1) Passed
         Test csw:csw-2.0.2-GetRecords-tc6.2 (s0006/d39e6546_1/d39e6423_1/d39e2666_1) Failed
         Test csw:csw-2.0.2-GetRecords-tc7.1 (s0006/d39e6546_1/d39e6423_1/d39e2671_1) Passed
            Test ctl:SchematronValidatingParser (s0006/d39e6546_1/d39e6423_1/d39e2671_1/d39e3854_1) Passed
         Test csw:csw-2.0.2-GetRecords-tc8.1 (s0006/d39e6546_1/d39e6423_1/d39e2676_1) Passed
         Test csw:csw-2.0.2-GetRecords-tc8.2 (s0006/d39e6546_1/d39e6423_1/d39e2681_1) Passed
         Test csw:csw-2.0.2-GetRecords-tc9.1 (s0006/d39e6546_1/d39e6423_1/d39e2686_1) Passed
            Test ctl:SchematronValidatingParser (s0006/d39e6546_1/d39e6423_1/d39e2686_1/d39e4132_1) Passed
         Test csw:csw-2.0.2-GetRecords-tc10.1 (s0006/d39e6546_1/d39e6423_1/d39e2691_1) Passed
            Test ctl:SchematronValidatingParser (s0006/d39e6546_1/d39e6423_1/d39e2691_1/d39e4252_1) Passed
         Test csw:csw-2.0.2-GetRecords-tc11.1 (s0006/d39e6546_1/d39e6423_1/d39e2697_1) Failed
         Test csw:csw-2.0.2-GetRecords-tc11.2 (s0006/d39e6546_1/d39e6423_1/d39e2702_1) Passed
         Test csw:csw-2.0.2-GetRecords-tc12.1 (s0006/d39e6546_1/d39e6423_1/d39e2707_1) Passed
         Test csw:csw-2.0.2-GetRecords-tc13.1 (s0006/d39e6546_1/d39e6423_1/d39e2712_1) Failed
         Test csw:csw-2.0.2-GetRecords-tc14.1 (s0006/d39e6546_1/d39e6423_1/d39e2717_1) Failed
         Test csw:csw-2.0.2-GetRecords-tc14.2 (s0006/d39e6546_1/d39e6423_1/d39e2722_1) Failed
         Test csw:csw-2.0.2-GetRecords-tc15.1 (s0006/d39e6546_1/d39e6423_1/d39e2728_1) Passed
            Test ctl:SchematronValidatingParser (s0006/d39e6546_1/d39e6423_1/d39e2728_1/d39e5001_1) Passed
         Test csw:csw-2.0.2-GetRecords-tc16.1 (s0006/d39e6546_1/d39e6423_1/d39e2733_1) Passed
            Test ctl:SchematronValidatingParser (s0006/d39e6546_1/d39e6423_1/d39e2733_1/d39e5096_1) Passed
         Test csw:csw-2.0.2-GetRecords-tc16.2 (s0006/d39e6546_1/d39e6423_1/d39e2738_1) Passed
         Test csw:csw-2.0.2-GetRecords-tc17.1 (s0006/d39e6546_1/d39e6423_1/d39e2743_1) Failed
         Test csw:csw-2.0.2-GetRecords-tc17.2 (s0006/d39e6546_1/d39e6423_1/d39e2748_1) Passed
         Test csw:csw-2.0.2-GetRecords-tc18.1 (s0006/d39e6546_1/d39e6423_1/d39e2753_1) Failed
         Test csw:csw-2.0.2-GetRecords-tc19.1 (s0006/d39e6546_1/d39e6423_1/d39e2759_1) Passed
         Test csw:csw-2.0.2-GetRecords-tc20.1 (s0006/d39e6546_1/d39e6423_1/d39e2764_1) Passed
            Test ctl:SchematronValidatingParser (s0006/d39e6546_1/d39e6423_1/d39e2764_1/d39e5895_1) Passed
         Test csw:csw-2.0.2-GetRecords-tc21.1 (s0006/d39e6546_1/d39e6423_1/d39e2769_1) Passed
            Test ctl:SchematronValidatingParser (s0006/d39e6546_1/d39e6423_1/d39e2769_1/d39e5974_1) Passed
         Test csw:csw-2.0.2-GetRecords-tc22.1 (s0006/d39e6546_1/d39e6423_1/d39e2774_1) Passed
         Test csw:csw-2.0.2-GetRecords-tc23.1 (s0006/d39e6546_1/d39e6423_1/d39e2779_1) Passed
         Test csw:csw-2.0.2-GetRecords-tc24.1 (s0006/d39e6546_1/d39e6423_1/d39e2784_1) Failed
         Test csw:csw-2.0.2-GetRecords-tc25.1 (s0006/d39e6546_1/d39e6423_1/d39e2790_1) Passed
            Test ctl:SchematronValidatingParser (s0006/d39e6546_1/d39e6423_1/d39e2790_1/d39e6312_1) Passed
         Test csw:csw-2.0.2-GetRecords-tc26.1 (s0006/d39e6546_1/d39e6423_1/d39e2795_1) Passed
            Test ctl:SchematronValidatingParser (s0006/d39e6546_1/d39e6423_1/d39e2795_1/d39e6380_1) Passed

Issue

  • GeoTools error when resolving srsName="urn:x-ogc:def:crs:EPSG:6.11:4326" csw:csw-2.0.2-GetRecords-tc5.2
    <?xml version="1.0"?>
    <csw:GetRecords xmlns:csw="http://www.opengis.net/cat/csw/2.0.2" service="CSW" version="2.0.2"
    xmlns:gml="http://www.opengis.net/gml"
    xmlns:ogc="http://www.opengis.net/ogc" resultType="results">                 
        <csw:Query typeNames="csw:Record">
          <csw:ElementName>dc:identifier</csw:ElementName>
          <csw:ElementName>ows:BoundingBox</csw:ElementName>
          <csw:Constraint version="1.1.0">
            <ogc:Filter>
              <ogc:BBOX>
                <ogc:PropertyName>/ows:BoundingBox</ogc:PropertyName>
                <gml:Envelope srsName="urn:x-ogc:def:crs:EPSG:6.11:4326">
    <gml:lowerCorner>47.0 -4.5</gml:lowerCorner>
                  <gml:upperCorner>52.0 1.0</gml:upperCorner>
                </gml:Envelope>
              </ogc:BBOX>
            </ogc:Filter>
          </csw:Constraint>
        </csw:Query>
    </csw:GetRecords>
    
  • How to handle matchCase="false" with Lucene ? csw:csw-2.0.2-GetRecords-tc6.2
  • csw:csw-2.0.2-GetRecords-tc11.1 like operator with a like case sensitive:
              <ogc:PropertyIsLike wildCard="*" singleChar="?" escapeChar="\">
                <ogc:PropertyName>dc:title</ogc:PropertyName>
                <ogc:Literal>Lorem ipsum*</ogc:Literal>
              </ogc:PropertyIsLike>
    
  • csw:csw-2.0.2-GetRecords-tc13.1 An issue with RangeQuery inclusive on Date ?
    <RangeQuery fld="{ogc:PropertyName}" lowerTxt="{ogc:Literal}" inclusive="true"/>
    
  • csw:csw-2.0.2-GetRecords-tc14.1 : odd / StackOverflowError
      <stack>
        <at class="org.fao.geonet.kernel.search.spatial.!OgcGenericFilters$GeomExtractor" file="OgcGenericFilters
    .java" line="250" method="visit" />
    
  • csw:csw-2.0.2-GetRecords-tc14.2 : StackOverflowError
  • csw:csw-2.0.2-GetRecords-tc17.1 : To be continued.

Fixed

  • CSW / Fix DescribeRecords exception according to input parameters as expected by testsuite.
  • CSW / Fix GetRecordById when multiple ids and one not found.
  • CSW / Fix csw-record schema mapping, geonet:info element and ows:BoundingBox spatial indexing.

GeoNetwork 2.2.0

Implement CSW 2.0.1.

Last modified 13 years ago Last modified on 01/31/12 10:00:36
Note: See TracWiki for help on using the wiki.