startPosition parameter maxRecords attribute typeNames parameter ElementName or ElementSetName parameter

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