10.6.2 KVP encoding
Table 62 specifies the keyword-value pair KVP encoding for the DescribeRecord operation request. This encoding is suitable for the HTTP GET binding.
NOTE To reduce the need for readers to refer to other parts of this document, the first three parameters listed
below are copied from Table 57 in Subclause 10.3.5 of this document.
Table 62 — KVP encoding for DescribeRecord operation request
Keyword
c
Data type and value Optionality and use
Parameter in general model
REQUEST Character String
Fixed value of DescribeRecord, case insensitive
One Mandatory
a
none
service Character String
Fixed value of CSW One Mandatory
serviceId version Character
String Fixed value of 2.0.2
One Mandatory none
NAMESPACE List of Character String, comma separated
Used to specify namespaces and their prefixes
Format is xmlns[prefix=]namespace-url. If prefix is not specified, then this is the
default namespace. One Optional
b
Include declarations for each namespace used in a
TypeName none
TypeName List of Character String, comma separated
One or more qualified type names to be described
Zero or one Optional Default action is to
describe all types known to server
typeName
outputFormat Character String
A MIME type indicating the format that the output document should have
Zero or one Optional Default value is
applicationxml returnFormat
schemaLanguage Character String Zero or one Optional
Default value is XMLSCHEMA
schemaLanguage
a The REQUEST parameter contains the same information as the name of the DescribeRecord element in XML encoding.
b The NAMESPACE parameter contains the same information as the xmlns attributes which may be used to define and bind
namespaces in XML encoding. c
Parameter keywords are case insensitive for KVP encoding. Parameters values are case sensitive..
10.6.3 XML encoding
The following XML-Schema fragment defines the XML encoding for the DescribeRecord
operation request:
xsd:element name=DescribeRecord type=csw:DescribeRecordType xsd:complexType
name=DescribeRecordType xsd:complexContent
Copyright © 2007 Open Geospatial Consortium, Inc. All Rights Reserved.
135
xsd:extension base=csw:RequestBaseType xsd:sequence
xsd:element name=TypeName type=xsd:QName minOccurs=0 maxOccurs=unbounded
xsd:sequence xsd:attribute name=outputFormat type=xsd:string
use=optional default=applicationxml
xsd:attribute name=schemaLanguage type=xsd:anyURI use=optional
default=http:www.w3.orgXMLSchema xsd:extension
xsd:complexContent xsd:complexType
10.6.4 Parameter descriptions
10.6.4.1 NAMESPACE parameter
The DescribeRecord operation depends on namespace declarations in order to know exactly which types to describe.
For XML encoded DescribeRecord requests, the namespace declarations are specified using standard XML conventions xmlns attributes and described in the document
Namespaces in XML [http:www.w3.orgTR1999REC-xml-names-19990114].
For the KVP encoding, namespace declarations are specified using the NAMESPACE parameter. The NAMESPACE parameter is a comma separated list of namespace
declarations of the form xmlns[prefix=]namespace-url.
The following is an example declaration:
...NAMESPACE=xmlnsgml=http:www.opengis.orggml,xmlnswfs=http: www.opengis.orgwfs...
The value of the NAMESPACE parameter shall be properly escaped for url encoding, which is not shown in this example for the sake of clarity.
10.6.4.2 TypeName parameter
The TypeName parameter specifies a list of type names that are to be described by the catalogue. A type name is the name of a queryable entity from the information model of
the catalogue e.g., ebrim:ExtrinsicObject.
Every type name shall be fully qualified in order to indicate the target namespace for the type definition. If no type names are provided, then entire schemas from the target
namespace are returned. For XML-encoded DescribeRecord requests, the namespace declarations are specified using the targetNamespace attribute of the TypeName element.
136
Copyright © 2007 Open Geospatial Consortium, Inc. All Rights Reserved.
If the DescribeRecord request is XML encoded, then namespaces shall be declared according to the conventions of XML. If the DescribeRecord request is KVP encoded,
then the namespaces referenced shall be declared using the NAMESPACE parameter.
10.6.4.3 outputFormat parameter
The outputFormat parameter specifies the MIME type of the response document. The default output format attribute is the MIME type applicationxml. All supported output
formats shall be declared in the Capabilities document.
10.6.4.4 schemaLanguage parameter
The schemaLanguage parameter is used to specify the schema language that should be used to describe the specified types. The default value is XMLSCHEMA, which indicates
that the XML-Schema, schema description language shall be used. Other schemas languages are possible as long as the required schemaLanguage values are declared in
the Capabilities document.
10.6.5 Response
The following XML Schema fragment defines the response to a DescribeRecord operation when the schemaLanguage parameter is set to the value XMLSCHEMA.
xsd:element name=DescribeRecordResponse
type=csw:DescribeRecordResponseType xsd:complexType
name=DescribeRecordResponseType xsd:sequence
xsd:element name=SchemaComponent
type=csw:SchemaComponentType minOccurs=0
maxOccurs=unbounded xsd:sequence
xsd:complexType xsd:complexType name=SchemaComponentType mixed=true
xsd:sequence xsd:any
namespace=any processContents=lax
xsd:sequence xsd:attribute name=targetNamespace type=xsd:anyURI
use=required xsd:attribute name=parentSchema type=xsd:anyURI
use=optional xsd:attribute name=schemaLanguage type=xsd:anyURI
use=required xsd:complexType
The DescribeRecordResponse element is a container for zero or more SchemaComponent elements, each of which contains the description of one or more
type names in the requested schema language. The SchemaComponent element may contain any content so that schema language descriptions other than XML Schema may
be accommodated. For example, the content could be SQL DDL.
Copyright © 2007 Open Geospatial Consortium, Inc. All Rights Reserved.
137
10.6.6 Examples