Geoportal Extension Catalog Service

Release 9.3.1 E-mail This Topic Printable Version Give Us Feedback

Geoportal Extension Catalog Service

If the Geoportal extension was a car, the Geoportal extension Catalog Service would be its engine, controlling other components, managing transactions, and providing the central interface for the discovery, publishing, and validation of metadata.



Starting at version 9.3, the Geoportal included 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/discovery?Request=GetCapabilities&Service=CSW&Version=2.0.2



where

The Geoportal extension 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 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 capabilities of the Geoportal extension CS-W implementation will be described and sample requests and responses included in the sections below. See Geoportal extension WSDL for information about the web service definition files.

Details of the CS-W Interface

  1. SUPPORTED OPERATIONS

    The Geoportal extension 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.



    Table 1- Supported CS-W Operations

    Operation Obligation Supported Binding
    GetCapabilities mandatory yes KVP+POST+SOAP
    DescribeRecord mandatory yes KVP+POST+SOAP
    GetRecords mandatory yes KVP+POST+SOAP
    GetRecordById optional yes KVP+POST+SOAP
    GetDomain optional No N/A
    Harvest optional No N/A
    Transaction optional yes POST+SOAP
    For each of the supported operations, the Geoportal extension CS-W implementation supports KVP, POST, and SOAP implementations
  2. NAMESPACES

    The following table lists the namespace prefix declarations that are used throughout this document and the associated specification and version.



    Table 2 - Namespace Prefix Declarations

    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
    SOAP-ENV http://schemas.xmlsoap.org/soap/envelope SOAP Version 1.1
  3. CORE QUERYABLES

    The Geoportal extension CS-W implementation does not define any additional queryable properties beyond the CS-W core queryables. The Geoportal extension 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 extension information model.



    Table 3 - Core Queryable Description and Mapping



    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:

      west: /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 "How Lucene Indexing Works" section 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:

    • farming
    • biota
    • boundaries
    • climatologyMeteorologyAtmosphere
    • economy
    • elevation
    • environment
    • geoscientificInformation
    • health
    • imageryBaseMapsEarthCover
    • intelligenceMilitary
    • inlandWaters
    • location
    • oceans
    • planningCadastre
    • society
    • structure
    • transportation
    • utilitiesCommunication


    ISO 19139:/gmd:MD_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:topicCategory/gmd:MD_TopicCategoryCode



    Dublin Core:

    /rdf:RDF/rdf:Description/dc:subject



    FGDC:

    /metadata/idinfo/keywords/theme[1]/themekey



    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:
    • liveData
    • downloadableData
    • offlineData
    • staticMapImage
    • document
    • application
    • geographicService
    • clearinghouse
    • mapFiles
    • geographicActivities


    ISO 19139:

    determined by choice between ISO19115 or ISO19119 content standards.



    Dublin Core:

    /rdf:RDF/rdf:Description/dc:type



    FGDC:

    /metadata/distinfo/resdesc
    NOTE: * "All" implies all OGC comparison operators:
    • ogc:PropertyIsEqualTo
    • ogc:PropertyIsNotEqualTo
    • ogc:PropertyIsLessThan
    • ogc:PropertyIsGreaterThan
    • ogc:PropertyIsLessThanOrEqualTo
    • ogc:PropertyIsGreaterThanOrEqualTo
    • ogc:PropertyIsLike
  4. SPATIAL QUERIES

    Envelope queries are encoded using OGC Filter spatial predicates. The Geoportal extension CS-W API doesn't support every spatial predicate available in the Filter specification.



    Table 4 - Supported Spatial Predicates

    OGC Filter Spatial Predicate Geoportal extension 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:
      1. gml:Envelope
      2. gml:Point
  5. COMPARISON OPERATORS

    Comparison operators are included in a csw:GetRecord request:
    • Between
    • EqualTo
    • GreaterThan
    • GreaterThanEqualTo
    • LessThan
    • LessthanEqualTo
    • Like
    • NotEqualTo
    • NullCheck
  6. PARAMETERS

    The following table outlines the parameters for each supported operation.



    Table 5- Supported Parameters
    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


    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
    • original


    service
    • CSW
    • http://www.opengis.net/cat/csw/2.0.2


    version
    • 2.0.2


    PostEncoding
    • XML
  7. CORE RETURNABLES

    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 extension CS-W interface returns the original metadata document as it was published to Geoportal.



    Table 6 - Returnable Properties
    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

Sample Requests

This section includes sample requests.

  1. GetCapabilities

    Both KVP, POST, and SOAP requests are supported by the Geoportal CS-W service.



    KVP ?REQUEST=GetCapabilities&SERVICE=CSW&version=2.0.2
    POST <?xml version="1.0" encoding="UTF-8"?>

    <csw:GetCapabilities xmlns:csw="http://www.opengis.net/cat/csw/2.0.2" service="CSW" xmlns="http://www.opengis.net/ows">

    </csw:GetCapabilities>
    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:GetCapabilities

    xmlns:csw="http://www.opengis.net/cat/csw/2.0.2"

    service="CSW" xmlns="http://www.opengis.net/ows">

    </csw:GetCapabilities>

    </SOAP-ENV:Body>

    </SOAP-ENV:Envelope>


  2. DescribeRecord

    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 <?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:DescribeRecord service="CSW" version="2.0.2"

    xmlns:csw="http://www.opengis.net/cat/csw/2.0.2">

    </csw:DescribeRecord>

    </SOAP-ENV:Body>

    </SOAP-ENV:Envelope>



  3. GetRecords

    A GetRecords requests 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 N/A
    POST <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 <?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 <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:PropertyIsEqualTo>

    <ogc:PropertyName>dc:title</ogc:PropertyName>

    <ogc:Literal>Sample Document</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 <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:PropertyIsEqualTo>

    <ogc:PropertyName>dc:title</ogc:PropertyName>

    <ogc:Literal>Sample Document</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>

    Subject
    KVP N/A
    POST <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 <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 <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 <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 <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>



  4. GetRecordById

    KVP ?REQUEST=GetRecordById&service=CSW&version=2.0.2&Id=B6A0EC8C-826D-11D8-BADF-080020ECC953
    POST <<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>

  5. Transaction Insert

    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>
  6. Transaction Update

    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>
  7. Transaction Delete

    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>

Geoportal Extension WSDL

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 located at http://<host>:<port>/geoportal/csw/service-wsdl.jsp, where <host> is the Geoportal host server, and <port> is the Tomcat port number. They are stored in the <TOMCAT>\webapps\geoportal\csw directory, and are the following: