-
Notifications
You must be signed in to change notification settings - Fork 149
Catalog Service
The Geoportal Catalog Service is a key component for the discovery and publishing of geoportal resources. The geoportal web application includes an implementation of the Open Geospatial Consortium (OGC) Catalog Service for the Web (CS-W) 2.0.2 interface specification. The link to this service will typically follow the format below:
http://serverName:port/geoportal/csw?Request=GetCapabilities&Service=CSW&Version=2.0.2
The geoportal CS-W service makes possible support for arbitrary metadata schemas without complicating the search component of the geoportal. When a metadata document is published to the geoportal, the original metadata is retained unchanged and is used when editing the metadata in the online form or when displaying the full metadata as part of search results. At the same time, the geoportal is able to extract searchable elements into a uniform structure, standardize domain values across metadata standards, determine the topic category codes or content types of the metadata document, select key content for connecting to online resources, and assign a unique identifier to the record. The Details of the CS-W Interface will be described and Sample Requests and Responses included in the sections below. See the Geoportal WSDL section at the end for information about the web service definition files.
The geoportal CS-W implementation supports the mandatory CS-W requests as well as the optional GetRecordsById and Transaction. The Transaction requests publish or update entire documents only. The Transaction delete request is based on file identifier alone. Geoportal publisher permissions for executing Transaction requests must be included in the HTTP header in the client application that submits the CS-W request. The client application's header and credentials must follow HTTP Authorization standards. The GetDomain and Harvest operations are not supported at this time. Note: In the table below, the Obligation column indicates if the operation is mandatory or optional. Mandatory operations are required for the service to be minimally compliant with this CS-W specification. Optional operations are not required by the CS-W specification.
Operation | Obligation | Supported | Binding |
---|---|---|---|
GetCapabilities | mandatory | yes | KVP+POST+SOAP |
DescribeRecord | mandatory | yes | KVP+POST+SOAP |
GetRecords | mandatory | yes | POST+SOAP |
GetRecordById | optional | yes | KVP+POST+SOAP |
GetDomain | optional | no | N/A |
Harvest | optional | no | N/A |
Transaction | optional | yes | POST+SOAP |
The following table lists the namespace prefix declarations that are used throughout this document and the associated specification and version.
Prefix | Namespace URI | Specification |
csw | http://www.opengis.net/cat/csw/2.0.2 | OGC Catalogue Services 2.0.2, Corrigendum 2 Release, OGC 07-006r1 |
ows | http://www.opengis.net/ows | OGC Common 1.0.0 |
ogc | http://www.opengis.net/ogc | OGC Filter 1.1.0 |
gml | http://www.opengis.net/gml | GML 3.0.0 |
dc | http://purl.org/dc/elements/1.1/ | Dublin Core |
dct | http://purl.org/dc/terms | Dublin Core terms |
gmd | http://www.isotc211.org/2005/gmd | ISO 19115/19139 |
SOAP-ENV | http://schemas.xmlsoap.org/soap/envelope | SOAP Version 1.1 |
env | http://www.w3.org/2003/05/soap-envelope/ | SOAP Version 1.2 |
The geoportal CS-W implementation supports CS-W core queryable properties, the ones defined in the CSW ISO Application Profile and additional queryables (applicable to ISO metadata only). The geoportal information model is backed by XML documents and a spatial database. Its XML documents contain FGDC, ISO 19139, Dublin Core, or other XML elements and attributes. Below is a table, mapping OGC Catalog Core Queryables to items in the geoportal information model. The remaining queryable properties relying on ISO 19115 and ISO 19119 metadata are faithfully following the names and mappings defined in OpenGIS Catalogue Services Specification 2.0.2 - ISO Metadata Application Profile and Technical Guidance to implement INSPIRE Discovery Services Technical Guidance Version 2.12.
Name | Aliases | Definition | Data Type | Allowed OGC Property Filters | Mapping to Information Model |
---|---|---|---|---|---|
dc:identifier | fileIdentifier, fid, id, identifier, fileID | An unambiguous reference to the resource within a given context. | string | All * |
ISO 19139: /gmd:MD_Metadata/gmd:fileIdentifier/gco:CharacterString Dublin Core: /rdf:RDF/rdf:Description/dc:identifier FGDC: System assigned identifier as FGDC does not include a provision for this. |
dct:modified | modified, dc:date, date | Date on which the resource was last changed. | Date formatted string (yyyy-mm-dd) | All * are allowed, except for ogc:PropertyIsLike | Stored in database. Read from file system information. |
ows:BoundingBox | geometry, envelope | A bounding box for identifying a geographic area of interest. | gml:Envelope, gml:Point | Set of spatial operators (see section below on spatial queries) | Examples are for "West", but use simliar syntax for East, North, and South: ISO 19139: /gmd:MD_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:extent/gmd:EX_Extent/gmd:geographicElement/gmd:EX_GeographicBoundingBox/gmd:westBoundLongitude/gco:Decimal Dublin Core, two options (east = UpperCorner, north = UpperCorner, south = LowerCorner): /rdf:RDF/rdf:Description/ows:WGS84BoundingBox/westbc /rdf:RDF/rdf:Description/ows:WGS84BoundingBox/ows:LowerCorner FGDC: /metadata/idinfo/spdom/bounding/westbc |
anyText | csw:anyText | This queryable represents the catalog entry as a whole. | string | ogc:PropertyIsLike | Those elements that have been marked as having one of the following meanings: title, abstract, keywords, or body. Refer to the Details of Lucene Indexing in the Geoportal topic for the default settings for these meanings and how to modify this. |
dc:title | title | A name given to the resource | string | All * | ISO 19139: /gmd:MD_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:citation/gmd:CI_Citation/gmd:title/gco:CharacterString Dublin Core: /rdf:RDF/rdf:Description/dc:title FGDC: /metadata/idinfo/citation/citeinfo/title |
dc:abstract | abstract | Overview description of the resource | string | All * | ISO 19139: /gmd:MD_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:abstract/gco:CharacterString Dublin Core: /rdf:RDF/rdf:Description/dc:description FGDC: /metadata/idinfo/descript/abstract |
dc:subject | subject | The topic of the content of the resource. Controlled-list. | string | ogc:PropertyIsEqualTo |
Accepted values are based on the ISO 19115 topic category codes:
|
dc:type | type, dc:format, format | The physical or digital manifestation of the resource. | string | All * are allowed, but only "ogc:PropertyIsEqualTo" makes logical sense. |
Accepted values are:
|
Note: *"All" implies all OGC comparison operators:
- ogc:PropertyIsEqualTo
- ogc:PropertyIsNotEqualTo
- ogc:PropertyIsLessThan
- ogc:PropertyIsGreaterThan
- ogc:PropertyIsLessThanOrEqualTo
- ogc:PropertyIsGreaterThanOrEqualTo
- ogc:PropertyIsLike
Envelope queries are encoded using OGC Filter spatial predicates. The geoportal CS-W API doesn't support every spatial predicate available in the Filter specification.
OGC Filter Spatial Predicate | Geoportal CS-W Spatial Predicate |
ogc:BBOX | Overlaps |
ogc:Intersects | Overlaps |
ogc:Within | Within |
- Overlaps: finds metadata documents in which part or all of the metadata document's envelope falls within the specified search box. Anything the search box touches is found.
- Within: finds metadata documents where the document's envelope falls entirely within the specified search box. The document's spatial envelope can touch the search box boundary.
- The geometry operands supported for spatial queries are:
- gml:Envelope
- gml:Point
Comparison operators are included in a csw:GetRecord request:
- Between
- EqualTo
- GreaterThan
- GreaterThanEqualTo
- LessThan
- LessthanEqualTo
- Like
- NotEqualTo
- NullCheck
The following table outlines the parameters for each supported operation.
Operation | Parameter | Accepted Values |
DescribeRecord | typeName | csw:Record, csw:SummaryRecord, csw:BriefRecord |
outputFormat | text/xml, application/xml | |
GetRecords | typeNames | csw:Record |
outputFormat | text/xml, application/xml | |
outputSchema | http://www.opengis.net/cat/csw/2.0.2 http://www.isotc211.org/2005/gmd | |
resultType | results, hits, validate | |
ElementSetName | summary, brief, full | |
constraintLanguage | Filter | |
GetRecordById | ElementSetName | summary, brief, full |
outputFormat | text/xml, application/xml | |
outputSchema | http://www.opengis.net/cat/csw/2.0.2 http://www.isotc211.org/2005/gmd | |
service | CSW, http://www.opengis.net/cat/csw/2.0.2 | |
version | 2.0.2 | |
PostEncoding | XML |
For the csw:Record output schema, the records returned contain a selection of the core returnables, of which the subset is dependent on the element set. When request=GetRecordById, outputSchema=original, and ElementSetName=full, the geoportal CS-W interface returns the original metadata document as it was published to the geoportal. For the gmd:MD_Metadata output schema, the records returned contain a selection of ISO metadata elements, of which the subset is dependent on the element set as defined in the OGC CSW ISO Application Profile.
Element Set | Returnables |
---|---|
brief | dc:identifier, dc:title, dc:type, ows:Envelope |
summary | dc:identifier, dc:title, dc:type, dc:format, ows:Envelope, dc:subject, dct:modified, dc:abstract |
full | dc:identifier, dc:title, dc:type, ows:Envelope, dc:subject, dct:modified, dc:abstract, dct:references |
This section includes sample requests.
For the geoportal CS-W service GetCapabilities, the KVP, POST, and SOAP requests are supported.
KVP | ?REQUEST=GetCapabilities&SERVICE=CSW&version=2.0.2 |
---|---|
POST | <csw:getcapabilities xmlns:csw="http://www.opengis.net/cat/csw/2.0.2" service="CSW" xmlns="http://www.opengis.net/ows"> </csw:getcapabilities> |
SOAP | <csw:getcapabilities xmlns:csw="http://www.opengis.net/cat/csw/2.0.2" service="CSW" xmlns="http://www.opengis.net/ows"> </csw:getcapabilities> |
KVP | ?REQUEST=DescribeRecord&service=CSW&version=2.0.0 |
POST | <csw:describerecord service="CSW" version="2.0.2" xmlns:csw="http://www.opengis.net/cat/csw/2.0.2"></csw:describerecord> |
SOAP | <csw:describerecord service="CSW" version="2.0.2" xmlns:csw="http://www.opengis.net/cat/csw/2.0.2"> </csw:describerecord> |
A GetRecords request requires a constraint language and since the geoportal CS-W service doesn't support CQL (Common Query Language), only XML Filter with POST style requests are supported.
Anytext | |
---|---|
KVP | http://gptogc.esri.com/geoportal/csw?request=getRecords&service=CSW&startPosition=1&maxRecords=10&resultType=results&elementSetName=full&outputFormat=application/xml&outputschema=http://www.isotc211.org/2005/gmd&constraintLanguage=Filter&Constraint=%3Cogc:Filter%3E%3Cogc:Overlaps%3E%3Cogc:PropertyName%3Eows:BoundingBox%3C/ogc:PropertyName%3E%3Cgml:Envelope%3E%3Cgml:lowerCorner%3E-90%20-180%3C/gml:lowerCorner%3E%3Cgml:upperCorner%3E90%2090%3C/gml:upperCorner%3E%3C/gml:Envelope%3E%3C/ogc:Overlaps%3E%3C/ogc:Filter%3E&namespace=xmlns(gml=http://www.opengis.net/gml),xmlns(ogc=http://www.opengis.net/ogc) |
POST |
|
SOAP |
<?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:xsd="http://www.w3.org/1999/XMLSchema"> <SOAP-ENV:Body> <csw:GetRecords xmlns:csw="http://www.opengis.net/cat/csw/2.0.2" version="2.0.2" service="CSW" resultType="results" startPosition="1" maxRecords="10"> <csw:Query typeNames="csw:Record" xmlns:ogc="http://www.opengis.net/ogc" xmlns:gml="http://www.opengis.net/gml"> <csw:ElementSetName>full</csw:elementsetname> <csw:Constraint version="1.1.0"> <ogc:Filter> <ogc:And> <ogc:PropertyIsLike wildCard="*" escape="\" singleChar="?"> <ogc:PropertyName>AnyText</ogc:propertyname> <ogc:Literal>data</ogc:literal> </ogc:propertyislike> <ogc:PropertyIsEqualTo> <ogc:PropertyName>dc:type</ogc:propertyname> <ogc:Literal>liveData</ogc:literal> </ogc:propertyisequalto> <ogc:PropertyIsEqualTo> <ogc:PropertyName>dc:subject</ogc:propertyname> <ogc:Literal>imageryBaseMapsEarthCover</ogc:literal> </ogc:propertyisequalto> <ogc:BBOX> <ogc:PropertyName>ows:BoundingBox</ogc:propertyname> <gml:Envelope> <gml:lowerCorner>-118.3 32.1</gml:lowercorner> <gml:upperCorner>-87.1 45.2</gml:uppercorner> </gml:envelope> </ogc:bbox> </ogc:and> </ogc:filter> </csw:constraint> </csw:query> </csw:getrecords> </soap-env:body> </soap-env:envelope> |
Title | |
---|---|
KVP | N/A |
POST |
<?xml version="1.0" encoding="UTF-8"?> <csw:GetRecords xmlns:csw="http://www.opengis.net/cat/csw/2.0.2" version="2.0.2" service="CSW" resultType="results" startPosition="1" maxRecords="10"> <csw:Query typeNames="csw:Record" xmlns:ogc="http://www.opengis.net/ogc" xmlns:gml="http://www.opengis.net/gml"> <csw:ElementSetName>full</csw:elementsetname> <csw:Constraint version="1.1.0"> <ogc:Filter> <ogc:PropertyIsLike wildCard="*" escape="\" singleChar="?"> <ogc:PropertyName>dc:title</ogc:propertyname> <ogc:Literal>Sample Document</ogc:literal> </ogc:propertyislike> </ogc:filter> </csw:constraint> <ogc:SortBy> <ogc:SortProperty> <ogc:PropertyName>dc:title</ogc:propertyname> <ogc:SortOrder>ASC</ogc:sortorder> </ogc:sortproperty> </ogc:sortby> </csw:query> </csw:getrecords> |
SOAP |
<?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:xsd="http://www.w3.org/1999/XMLSchema"> <SOAP-ENV:Body> <csw:GetRecords xmlns:csw="http://www.opengis.net/cat/csw/2.0.2" version="2.0.2" service="CSW" resultType="results" startPosition="1" maxRecords="10"> <csw:Query typeNames="csw:Record" xmlns:ogc="http://www.opengis.net/ogc" xmlns:gml="http://www.opengis.net/gml"> <csw:ElementSetName>full</csw:elementsetname> <csw:Constraint version="1.1.0"> <ogc:Filter> <ogc:PropertyIsLike wildCard="*" escape="\" singleChar="?"> <ogc:PropertyName>dc:title</ogc:propertyname> <ogc:Literal>Sample Document</ogc:literal> </ogc:propertyislike> </ogc:filter> </csw:constraint> <ogc:SortBy> <ogc:SortProperty> <ogc:PropertyName>dc:title</ogc:propertyname> <ogc:SortOrder>ASC</ogc:sortorder> </ogc:sortproperty> </ogc:sortby> </csw:query> </csw:getrecords> </soap-env:body> </soap-env:envelope> |
Subject | |
---|---|
KVP | N/A |
POST |
<?xml version="1.0" encoding="UTF-8"?> <csw:GetRecords xmlns:csw="http://www.opengis.net/cat/csw/2.0.2" version="2.0.2" service="CSW" resultType="results" startPosition="1" maxRecords="10"> <csw:Query typeNames="csw:Record" xmlns:ogc="http://www.opengis.net/ogc" xmlns:gml="http://www.opengis.net/gml"> <csw:ElementSetName>full</csw:elementsetname> <csw:Constraint version="1.1.0"> <ogc:Filter> <ogc:PropertyIsEqualTo> <ogc:PropertyName>dc:subject</ogc:propertyname> <ogc:Literal>imageryBaseMapsEarthCover</ogc:literal> </ogc:propertyisequalto> </ogc:filter> </csw:constraint> <ogc:SortBy> <ogc:SortProperty> <ogc:PropertyName>dc:title</ogc:propertyname> <ogc:SortOrder>ASC</ogc:sortorder> </ogc:sortproperty> </ogc:sortby> </csw:query> </csw:getrecords> |
SOAP |
<?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:xsd="http://www.w3.org/1999/XMLSchema"> <SOAP-ENV:Body> <csw:GetRecords xmlns:csw="http://www.opengis.net/cat/csw/2.0.2" version="2.0.2" service="CSW" resultType="results" startPosition="1" maxRecords="10"> <csw:Query typeNames="csw:Record" xmlns:ogc="http://www.opengis.net/ogc" xmlns:gml="http://www.opengis.net/gml"> <csw:ElementSetName>full</csw:elementsetname> <csw:Constraint version="1.1.0"> <ogc:Filter> <ogc:PropertyIsEqualTo> <ogc:PropertyName>dc:subject</ogc:propertyname> <ogc:Literal>imageryBaseMapsEarthCover</ogc:literal> </ogc:propertyisequalto> </ogc:filter> </csw:constraint> <ogc:SortBy> <ogc:SortProperty> <ogc:PropertyName>dc:title</ogc:propertyname> <ogc:SortOrder>ASC</ogc:sortorder> </ogc:sortproperty> </ogc:sortby> </csw:query> </csw:getrecords> </soap-env:body> </soap-env:envelope> |
Modified | |
---|---|
KVP | N/A |
POST |
<?xml version="1.0" encoding="UTF-8"?> <csw:GetRecords xmlns:csw="http://www.opengis.net/cat/csw/2.0.2" version="2.0.2" service="CSW" resultType="results" startPosition="1" maxRecords="10"> <csw:Query typeNames="csw:Record" xmlns:ogc="http://www.opengis.net/ogc" xmlns:gml="http://www.opengis.net/gml"> <csw:ElementSetName>full</csw:elementsetname> <csw:Constraint version="1.1.0"> <ogc:Filter> <ogc:PropertyIsGreaterThan> <ogc:PropertyName>dct:modified</ogc:propertyname> <ogc:Literal>2000-01-01</ogc:literal> </ogc:propertyisgreaterthan> </ogc:filter> </csw:constraint> <ogc:SortBy> <ogc:SortProperty> <ogc:PropertyName>dc:title</ogc:propertyname> <ogc:SortOrder>ASC</ogc:sortorder> </ogc:sortproperty> </ogc:sortby> </csw:query> </csw:getrecords> |
SOAP |
<?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:xsd="http://www.w3.org/1999/XMLSchema"> <SOAP-ENV:Body> <csw:GetRecords xmlns:csw="http://www.opengis.net/cat/csw/2.0.2" version="2.0.2" service="CSW" resultType="results" startPosition="1" maxRecords="10"> <csw:Query typeNames="csw:Record" xmlns:ogc="http://www.opengis.net/ogc" xmlns:gml="http://www.opengis.net/gml"> <csw:ElementSetName>full</csw:elementsetname> <csw:Constraint version="1.1.0"> <ogc:Filter> <ogc:PropertyIsGreaterThan> <ogc:PropertyName>dct:modified</ogc:propertyname> <ogc:Literal>2000-01-01</ogc:literal> </ogc:propertyisgreaterthan> </ogc:filter> </csw:constraint> <ogc:SortBy> <ogc:SortProperty> <ogc:PropertyName>dc:title</ogc:propertyname> <ogc:SortOrder>ASC</ogc:sortorder> </ogc:sortproperty> </ogc:sortby> </csw:query> </csw:getrecords> </soap-env:body> </soap-env:envelope> |
Envelope | |
---|---|
KVP | N/A |
POST |
<?xml version="1.0" encoding="UTF-8"?> <csw:GetRecords xmlns:csw="http://www.opengis.net/cat/csw/2.0.2" version="2.0.2" service="CSW" resultType="results" startPosition="1" maxRecords="10"> <csw:Query typeNames="csw:Record" xmlns:ogc="http://www.opengis.net/ogc" xmlns:gml="http://www.opengis.net/gml"> <csw:ElementSetName>full</csw:elementsetname> <csw:Constraint version="1.1.0"> <ogc:Filter> <ogc:BBOX> <ogc:PropertyName>ows:BoundingBox</ogc:propertyname> <gml:Envelope> <gml:lowerCorner>-118.3 32.1</gml:lowercorner> <gml:upperCorner>-87.1 45.2</gml:uppercorner> </gml:envelope> </ogc:bbox> </ogc:filter> </csw:constraint> <ogc:SortBy> <ogc:SortProperty> <ogc:PropertyName>dc:title</ogc:propertyname> <ogc:SortOrder>ASC</ogc:sortorder> </ogc:sortproperty> </ogc:sortby> </csw:query> </csw:getrecords> |
SOAP |
<?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:xsd="http://www.w3.org/1999/XMLSchema"> <SOAP-ENV:Body> <csw:GetRecords xmlns:csw="http://www.opengis.net/cat/csw/2.0.2" version="2.0.2" service="CSW" resultType="results" startPosition="1" maxRecords="10"> <csw:Query typeNames="csw:Record" xmlns:ogc="http://www.opengis.net/ogc" xmlns:gml="http://www.opengis.net/gml"> <csw:ElementSetName>full</csw:elementsetname> <csw:Constraint version="1.1.0"> <ogc:Filter> <ogc:BBOX> <ogc:PropertyName>ows:BoundingBox</ogc:propertyname> <gml:Envelope> <gml:lowerCorner>-118.3 32.1</gml:lowercorner> <gml:upperCorner>-87.1 45.2</gml:uppercorner> </gml:envelope> </ogc:bbox> </ogc:filter> </csw:constraint> <ogc:SortBy> <ogc:SortProperty> <ogc:PropertyName>dc:title</ogc:propertyname> <ogc:SortOrder>ASC</ogc:sortorder> </ogc:sortproperty> </ogc:sortby> </csw:query> </csw:getrecords> </soap-env:body> </soap-env:envelope> |
KVP | ?REQUEST=GetRecordById&service=CSW&version=2.0.2&Id=B6A0EC8C-826D-11D8-BADF-080020ECC953 |
POST |
<?xml version="1.0" encoding="UTF-8"?> <csw:GetRecordById xmlns:csw="http://www.opengis.net/cat/csw/2.0.2" version="2.0.2" service="CSW"> <csw:Id>B6A0EC8C-826D-11D8-BADF-080020ECC953</csw:id> </csw:getrecordbyid> |
SOAP |
<?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:xsd="http://www.w3.org/1999/XMLSchema"> <SOAP-ENV:Body> <csw:GetRecordById xmlns:csw=http://www.opengis.net/cat/csw/2.0.2 version="2.0.2" service="CSW"> <csw:Id>B6A0EC8C-826D-11D8-BADF-080020ECC953</csw:id> </csw:getrecordbyid> </soap-env:body> </soap-env:envelope> |
POST |
<?xml version="1.0" encoding="UTF-8"?> <csw:Transaction service="CSW" version="2.0.2" xmlns:csw="http://www.opengis.net/cat/csw/2.0.2"> <csw:Insert> <!-- metadata document is inserted here without xml prolog --> </csw:insert> </csw:transaction> |
SOAP |
<?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:xsd="http://www.w3.org/1999/XMLSchema"> <SOAP-ENV:Body> <csw:Transaction service="CSW" version="2.0.2" xmlns:csw="http://www.opengis.net/cat/csw/2.0.2"> <csw:Insert> <!-- metadata document is inserted here without xml prolog --> </csw:insert> </csw:transaction> </soap-env:body> </soap-env:envelope> |
The update request supports replacing entire documents only.
POST |
<?xml version="1.0" encoding="UTF-8"?> <csw:Transaction service="CSW" version="2.0.2" xmlns:csw="http://www.opengis.net/cat/csw/2.0.2"> <csw:Update> <!-- metadata document is inserted here without xml prolog --> </csw:update> </csw:transaction> |
SOAP |
<?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:xsd="http://www.w3.org/1999/XMLSchema"> <SOAP-ENV:Body> <csw:Transaction service="CSW" version="2.0.2" xmlns:csw="http://www.opengis.net/cat/csw/2.0.2"> <csw:Update> <!-- metadata document is inserted here without xml prolog --> </csw:update> </csw:transaction> </soap-env:body> </soap-env:envelope> |
The delete request supports deleting entire documents only based on the identifier. The identifiers are returned in the GetRecords response. The workflow is to find records that match certain criteria using the GetRecords request and then delete the returned records based on the dc:identifier.
POST |
<?xml version="1.0" encoding="UTF-8"?> <csw:Transaction service="CSW" version="2.0.2" xmlns:csw="http://www.opengis.net/cat/csw/2.0.2" xmlns:dc="http://www.purl.org/dc/elements/1.1/" xmlns:ogc="http://www.opengis.net/ogc"> <csw:Delete> <csw:Constraint version="2.0.2"> <ogc:Filter> <ogc:PropertyIsEqualTo> <ogc:PropertyName>dc:identifier</ogc:propertyname> <ogc:Literal>A0522EE9-8C45-4399-8B73-7CCFC2BB9F60</ogc:literal> </ogc:propertyisequalto> </ogc:filter> </csw:constraint> </csw:delete> </csw:transaction> |
SOAP |
<?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:xsd="http://www.w3.org/1999/XMLSchema"> <SOAP-ENV:Body> <csw:Transaction service="CSW" version="2.0.2" xmlns:csw="http://www.opengis.net/cat/csw/2.0.2" xmlns:dc="http://www.purl.org/dc/elements/1.1/" xmlns:ogc="http://www.opengis.net/ogc"> <csw:Delete> <csw:Constraint version="2.0.2"> <ogc:Filter> <ogc:PropertyIsEqualTo> <ogc:PropertyName>dc:identifier</ogc:propertyname> <ogc:Literal>A0522EE9-8C45-4399-8B73-7CCFC2BB9F60</ogc:literal> </ogc:propertyisequalto> </ogc:filter> </csw:constraint> </csw:delete> </csw:transaction> </soap-env:body> </soap-env:envelope> |
The wsdl associated with the geoportal CS-W SOAP endpoints is based upon the OGC example located at http://schemas.opengis.net/csw/2.0.2/examples/wsdl/2.0.2/. The geoportal wsdl files associated with its CS-W SOAP endpoints are stored in the \\geoportal\csw directory, and are the following:
- http-binding.wsdl
- kvp-binding.wsdl
- responses.wsdl
- service-wsdl.jsp
- soap-binding.wsdl
- xml-interfaces.wsdl