The list of supported output schemas shall be advertised in the capabilities document of the service using the Parameter element as outlined in OGC 05-008.
10.8.4.6 startPosition parameter
The startPosition parameter is used to indicate at which record position the catalogue should start generating output. The default value is 1 meaning it starts at the first record
in the result set.
10.8.4.7 maxRecords attribute
The maxRecords parameter is used to define the maximum number of records that should be returned from the result set of a query. If it is not specified, then 10 records
shall be returned. If its value is set to zero, then the behaviour is identical to setting “resultType=hits” as described in subclause 10.8.4.2.
10.8.4.8 typeNames parameter
The typeNames parameter is a list of one or more names of queryable entities in the catalogues information model that may be constrained in the predicate of the query. In
the case of XML realization of the OGC core metadata properties Subclause 10.2.5, the element csw:Record is the only queryable entity. Other information models may include
more than one queryable component. For example, queryable components for the XML realization of the ebRIM include rim:Service, rim:ExtrinsicObject and rim:Association.
In such cases the application profile shall describe how multiple typeNames values should be processed.
In addition, all or some of the these queryable entity names may be specified in the query to define which metadata record elements the query should present in the response to the
GetRecords
operation.
NOTE The typeNames parameter is different from the Type core queryable metadata property defined in
Subclause 6.3. The typeNames parameter is composed of one or more names of queryable entities in the information model of the catalogue. The core queryable Type is used to indicate the type or class of a resource being described by
the catalogue. Typically the value of the Type property is taken from some controlled vocabulary.
10.8.4.9 ElementName or ElementSetName parameter
The ElementName parameter is used to specify one or more metadata record elements, from the output schema specified using the outputSchema parameter, that the query
shall present in the response to the a GetRecords operation. Since clause 10.2.5 realizes the core metadata properties using XML schema, the value of the ElementName
parameter would be an XPath expression perhaps using qualified names. In the general case, a complete XPath expression may be required to correctly reference an element in
the information model of the catalog.
EXAMPLE 1 Using an XPath expression to reference a property in the information model of a catalogue.
… csw:Query typeNames=rim:ExtrinsicObject rim:Association csw:ElementNamerim:ExtrinsicObjectstatuscsw:ElementName
csw:ElementNamerim:ExtrinsicObjecthomecsw:ElementName
Copyright © 2007 Open Geospatial Consortium, Inc. All Rights Reserved.
149
… csw:Query …
However, in the case where the typeNames attribute on the Query element contains a single value, the catalogue can infer the first step in the path expression and it can be
omitted. This is usually the case when querying the core metadata properties since the only queryable target is csw:Record.
EXAMPLE 2 A query example where the first step of the path expression is inferred.
… csw:Query typeNames=csw:Record csw:ElementNamedc:identifiercsw:ElementName
csw:ElementNamedct:modifiedcsw:ElementName …
csw:Query …
If the metadata record element names are not from the schema specified using the outputSchema
parameter, then the service shall raise an exception as described in Subclause 10.3.7.
As mentioned in Subclause 10.8.4.4, if the outputFormat parameter is set to applicationxml
, then the response to the GetRecords operation shall validate against a schema document that is referenced in the response using the xmlns:schemaLocation
attribute. If the set of metadata record elements that the client specifies in the query is insufficient to generate a valid XML response document, a CSW shall augment the list of
elements presented to the client in order to be able to generate a valid XML document. Thus a client application should expect to receive more than the requested elements if the
output format is set to generate an XML document.
Well known sets of elements may be named, in which case the ElementSetName parameter can be used e.g., brief, summary or full to indicate which named set the
service shall present to the client. In the case where the query includes more than one entity name as the value of the typeName attribute on the Query element, the typeName
attribute on the ElementSetName element can be used to discriminate which element set or sets should be presented. The names specified for the typeName attribute on the
ElementSetName
element shall be a proper subset of the names specified as the value of
the typeName attribute on the Query element. If the typeName attribute is not included on the ElementSetName element, then the named element sets for all entities specified
as the value of the typeName attribute on the Query element shall be presented. If any entity name specified as a value of the typeName attribute on the ElementSetName
element does not match a name specified as a value of the typeName attribute on the Query
element, then the server shall raise an exception as described in Subclause 10.3.7.
EXAMPLE 3 The following XML fragment shows how the typeName attribute on the ElementSet element can be
used to indicate which element set should be presented when more than one entity in the information model of the catalogue is being queried. In this case, the query is performing a join between the rim:Service, rim:Classification and
rim:Association entities but presenting the Brief element set of the rim:Service entity.
?xml version=1.0 encoding=ISO-8859-1? GetRecords
service =
CSW version
= 2.0.2
150
Copyright © 2007 Open Geospatial Consortium, Inc. All Rights Reserved.
outputFormat =
applicationxml outputSchema
= urn:oasis:names:tc:ebxml-regrep:xsd:rim:3.0
xmlns =
http:www.opengis.netcatcsw2.0.2 xmlns:csw
= http:www.opengis.netcatcsw2.0.2
xmlns:rim =
urn:oasis:names:tc:ebxml-regrep:xsd:rim:3.0 xmlns:xsi
= http:www.w3.org2001XMLSchema-instance
xsi:schemaLocation =
http:www.opengis.netcatcsw2.0.2 ......csw2.0.2CSW-discovery.xsd
urn:oasis:names:tc:ebxml-regrep:xsd:rim:3.0 ......ebrim3.0schemarim.xsd
Query typeNames
= rim:Service rim:Classification rim:Association
ElementSetName typeNames
= rim:Service
brief ElementSetName
-- ...
-- Query
GetRecords
The ElementName and ElementSetName parameters are mutually exclusive. Either an ElementSetName parameter OR one or more ElementSetName parameters shall be
specified in a query.
10.8.4.10 Predicate languages