wiki:csw201

The Open Geospatial Consortium Catalog Service for the Web 2.0.1 implementation

The OGC-CSW 2.0.1 base specification, based on the ISO application profile, has been implemented in GeoNetwork opensource version 2.1 and serves as the OGC reference implementation for this specification. It complies to all of the created CITE tests for CSW 2.0.1

The supported operations and their exact behavior is listed below.

Implemented standards:

  • 04-021r3 : CSW 2.0.1 specification
  • 04-038r4 : CSW 2.0.1 - ISO application profile

The CSW server code has been implemented and is available from the SVN (Subversion) code repository at svn://geonetwork.svn.sourceforge.net/svnroot/geonetwork .

The application has passed all CITE tests developed for the CSW 2.0 base specification. A detailed reference of the implemented operations is provided below.

A client test application provided with the software can be used to locally test the mandatory and optional operations.

Detailed Implementation Reference per Operation

This section provides details on the implemented behavior of the CSW operations. All requests can be sent using GET/POST or SOAP protocol.

------------------------------------------------------------------
GetCapabilities (mandatory)
service:		handled, throws exc if <> 'http://www.opengis.net/cat/csw' or 'CSW'
acceptVersions:		handled, throws exc if does not contain '2.0.1'
sections:		handled
update sequence: 	not handled (returned most recent copy)
acceptFormats:   	not handled (only format is 'application/xml')
------------------------------------------------------------------
DescribeRecord (mandatory)
- service:       	handled, throws exc if <> 'http://www.opengis.net/cat/csw' or 'CSW'
- version:       	handled, throws exc if <> '2.0.1'
- typeName:      	handled
- outputFormat:  	handled, throws exc if <> 'application/xml' (only supported value)
- schemaLanguage:	handled, throws exc if <> 'http://www.w3.org/XML/Schema' (only supported value)
------------------------------------------------------------------
GetRecordById (mandatory)
service:        	handled, throws exc if <> 'http://www.opengis.net/cat/csw' or 'CSW'
version:        	handled, throws exc if <> '2.0.1'
id list:        	handled, mapped to uuid
elementSetName: 	handled, throws exc if <> 'brief|summary|full'
default is 'summary'. Case sensitive.

works for all schemas (iso, fgdc, dublin core)
------------------------------------------------------------------
GetRecords (mandatory)
service:		handled, throws exc if <> 'http://www.opengis.net/cat/csw' or 'CSW'
version:		handled, throws exc if <> '2.0.1'
outputFormat:		handled, throws exc if <> 'application/xml'
startPosition:		handled, throws exc if not integer or <1. Default = 1
maxRecords:		handled, throws exc if not integer or <1. Default = 10
distributedSearch: 	handled but not used
hopCount:		handled but not used, throws exc if not integer or < 0. Default = 2
outputSchema:		handled, throws exc if <> 'ogccore'|'profile'
elementSetName:		handled, throws exc if <> 'brief|summary|full'
default is 'summary'. Case insensitive
elementName:		non handled, handled elementSetName instead
resultType:		handled, throws exc if <> 'hits'|'results'|'validate'.
Default is 'hits'. 'validate' is not handled (throws exc) because it is used only in 
asynchronous communications (the ISO profile is synch.)
costr lang version:	handled, throws exc if missing or (for filters) if <> '1.1.0'

CQL: 	supported only: AND, OR (even nested), =, <>, <, >, <=, >=
      	strings containing spaces cannot be used in a query (like 'basic africa')
------------------------------------------------------------------
GetDomain   		(optional) not implemented
Transaction 		(optional) not implemented
Harvest     		(optional) not implemented
Filter Implementation Status 

Geometry operands: 	gml:Envelope
Spatial operators: 	BBOX (property-name not used)
Logical operators: 	all
Comparison operators: 	=, like, <, >, <=, >=, <>, between
Arithmetic operators: 	none

Limitations:

  • ISO19119 services are not implemented
  • The CQL is naive and has several limitations (for example it does not handle the bbox)
  • Type names are not handles because they can be queried using the 'Type' queryable.
Last modified 13 years ago Last modified on Apr 2, 2007 2:02:14 PM