soap:Envelope
A client may send CSW requests to a compatible catalogue using the body of a SOAP envelope. The client simply encodes the CSW request as the content of the soap:Body
element in the request message. The CSW shall then response by generating a SOAP message where the response to the client’s request is the content of the soap:Body
element.
If an exception is encountered while processing a CSW request encoded in a SOAP envelope, the CSW server shall generate a SOAP response message where the content of
the soap:Body element is a soap:Fault element. The following skeleton XML fragment shall be used when generating the soap:Body element in the event that the
CSW server encounters an exception:
soap:Body soap:Fault
soap:Code soap:Valuesoap:Serversoap:Value
soap:Code soap:Reason
soap:TextA server exception was encountered.soap:Text soap:Reason
soap:Detail
ows:ExceptionReport …
ows:ExceptionReport soap:Detail
soap:Fault soap:Body
The soap:Value element in the soap:Code element shall have the content soap:Server
indicating that this is a server exception. The soap:Text element in the soap:Reason
element shall have the content “Server exception was encountered.”. This fixed string is used since the details of the exception will be specified in the
soap:Detail element using an ows:ExceptionReport element as defined in
document [OGC 05-008c1].
The soap:Detail element shall contain an ows:ExceptionReport element detailing the specific exception that the server encountered.
The use of the soap:Header element is not discussed in this version of this specification.
10.3.3 Namespaces
Namespaces [W3C Recommendation January 1999] are used to discriminate XML vocabularies from one another. For the CSW there are two normative namespace
definitions, namely:
http:www.opengis.netcatcsw2.0 .2- for CSW interface vocabulary
http:www.opengis.netogc - for OGC Filter vocabulary
Copyright © 2007 Open Geospatial Consortium, Inc. All Rights Reserved.
125
A given CSW implementation will make use of one or more XML Schemas describing the metadata that is being manipulated and these schemas will, in turn, use one or more
namespaces e.g. http:www.someserver.commynshttp:www.someserver.commyns
urn:oasis:names:tc:ebxml-regrep:xsd:rim:3.0 .
10.3.4 Predicate languages
The general model allows catalogue clients to specify the predicate language used to constrain operations. The HTTP protocol binding schemas define two predicate
languages, based on the BNF in Subclause 6.2.2, which may be used. The two predicate languages are:
a CQL_TEXT is a text encoding of the BNF. b FILTER is an XML encoding of the BNF grammar and is normatively defined in the
Filter Encoding Implementation Specification, version 1.1.0 [OGC 04-095]. All CSW implementations are required to support this filter syntax.
Table 55 defines the parameters required to specify a predicate in keyword-value pair encoded CSW operation requests.
NOTE In Clause 10, tables are used to describe the parameters of each CSW request. The name of each
parameter is taken from the XML encoding of the request, unless the parameter is not applicable in the XML encoding in which case the name used in the KVP encoding is used. XML element names are case sensitive and are presented in
the tables using the correct case. KVP parameter names are case insensitive and are presented in the tables in UPPER case. For example, in Table 55, the parameter Constraint is specified using its XML encoding, while the parameter
CONSTRAINT_LANGUAGE which is implied in the XML encoding is specified using the KVP encoding and is in upper case.
126
Copyright © 2007 Open Geospatial Consortium, Inc. All Rights Reserved.
Table 55 — KVP encoding for constraints
Keyword
b
Description Data type and value
Optionality
CONSTRAINT_LANGUAGE Identifies the
predicate language used for
the value of the Constraint
Code List with allowed values:
CQL_TEXT, used to
indicate CQL. FILTER,
used to indicate OGC Filter.
Zero or one Optional
a
Must be specified with the Constraint
CONSTRAINT_LANGUAGE_VERSION Identifies the
version of the predicate
language used. Character String
Zero or one There is no default as
the parameter is specified if required to
indicate which version of a specification the
value of the constraint parameter conforms to.
Constraint Text of query
constraint in the predicate
language identified by the
CONSTRAINT
_ LANGUAGE
Character String Zero or one Optional
Must be specified with the
CONSTRAINT _LANG
UAGE
a The CONSTRAINT_LANGUAGE parameter contains the same information as the contents of the Constraint element in XML encoding.
b Parameter keywords, for KVP encoding, are case insensitive.
The following XML schema fragments define how the predicate language may be XML encoded in CSW operations that allow constraints to be defined Query, Update and
Delete:
xsd:complexType name=QueryConstraintType id=QueryConstraintType xsd:choice
xsd:element ref=ogc:Filter xsd:element name=CqlText type=xsd:string
xsd:choice xsd:attribute name=version type=xsd:string use=required
xsd:attribute xsd:complexType
The version parameter may be used to specify a version number indicating which version of a specification the constraint conforms to. For example, in the XML encoding, if the
ogc:Filter element is being used, the version parameter could be set to “1.1.0”
indicating that the filter conforms to version 1.1.0 of the Filter Encoding Implementation Specification
[OGC 04-095].
10.3.5 General model message mapping