Introduction Schemas defining coordinate reference systems

234 Copyright © 2007 Open Geospatial Consortium, Inc. All Rights Reserved. largely exhaustive. This is particularly true when the existing concrete elements include one element that is quite general, such as the elements EngineeringCRS, DerivedCRS, EngineeringDatum, UserDefinedCS, OperationParameter, and OperationParameterGroup. The Conversion, Transformation, ParameterValue, and ParameterValueGroup elements may be used for well- known coordinate operation methods, especially when only one instance of that element is needed for that operation method. However, these elements should not be used for well-known coordinate operation methods when many instances of that element are needed for one operation method. Instead, an Application Schema that defines operation-method-specialized element names and contents should be prepared for each such operation method. For interoperability, a suitable geospatial information community should standardize each such Application Schema. NOTE This use of Application Schemas follows the patterns used in Feature Application Schemas.

21.7.2 Import GML coordinate reference system schema components

The application schema shall import the GML schema as described in 21.2.3. Any GML profile referenced from the application schema shall include at least the gml:AbstractCoordinateReferenceSystem element and all schema components used by this element. NOTE Typically additional coordinate reference system schema components are required besides those required by gml:AbstractCoordinateReferenceSystem. In practice, especially concrete elements and types will typically be part of the profile, too.

21.8 Schemas defining coverages

21.8.1 Introduction

The following subclauses define the rules for the construction of GML application schemas for coverages. Coverages are described in Clause 19. Note that coverages are features and hence the rules of 21.3 above apply also to coverages.

21.8.2 Import GML coverage schema components

The application schema shall import the GML schema as described in 21.2.3. Any GML profile referenced from the application schema shall include at least the gml:AbstractCoverage element and all schema components used by this element. NOTE Typically additional coverage schema components are required besides those required by gml:AbstractCoverage. In practice, especially concrete elements and types like gml:RectifiedGridCoverage will typically be part of the profile, too.

21.8.3 User-defined coverage types

All geographic coverages in the GML application schema shall be declared as global elements in the schema, i.e. they shall be child elements of the XML Schema schema element. Authors of application schemas may create their own coverage types if GML lacks the desired construct. To do this, authors shall ensure that the object elements of these coverage types are in the substitution group either directly or indirectly of the corresponding GML object element: either gml:AbstractDiscreteCoverage or gml:AbstractContinuousCoverage. NOTE 1 These elements are indirectly in the substitution group of gml:AbstractFeature and hence the condition of the feature model is satisfied. Copyright © 2007 Open Geospatial Consortium, Inc. All Rights Reserved. 235 NOTE 2 This International Standard provides the concrete coverage types gml:MultiPointCoverage, gml:MultiCurveCoverage, gml:MultiSurfaceCoverage, gml:MultiSolidCoverage, gml:GridCoverage, and gml:RectifiedGridCoverage. Application coverages may derive from any of these as well. Any user-defined coverage subtype shall inherit the elements and attributes of the base GML coverage types without restriction, but may extend these base types to meet application requirements, such as providing a finer degree of interoperability with legacy systems and data sets. All rules specified in Clauses 7, 9 and 19 shall be followed.

21.8.4 Range parameters shall be substitutable for AbstractValue

The coverage application schema shall define or import the definitions for all range parameters. Each such range parameter shall be substitutable for gml:AbstractValue as defined in 16.4. Note that this allows the range parameter to take on a wide range of types. Note further that the schema components specified in 16.4 include several abstract subtypes that are substitutable for gml:AbstractValue, including gml:AbstractScalarValue and gml:AbstractValueList. Concrete scalar and value list types, and substitution group head elements, are also provided substitutable for gml:AbstractScalarValue or gml:AbstractValueList and include:  gml:Category the content model is specified by gml:CodeType  gml:CategoryList the content model is specified by gml:CodeOrNilReasonListType  gml:Quantity the content model is specified by gml:MeasureType  gml:QuantityList the content model is specified by gml:MeasureOrNilReasonListType  gml:Count the content model is specified by gml:CountType  gml:Boolean the content model is specified by gml:BooleanType To define the range parameters in a Coverage Application Schema, refer to 16.4. EXAMPLE Typical examples of the use of the value types in the development of a GML coverage can be found in 19.3, and are summarized in Table 8.