Extensibility Points General XML Principles

SWE Common Data Model OGC 08-094r1 Requirement http:www.opengis.netspecSWE2.0reqxsd-simple-componentsextension-namespace-unique Req 60. All extensions of the XML schemas described in this standard shall be defined in a new unique namespace. Extensions are not allowed to change the meaning or behavior of elements and types defined by this standard in any way in this case, new classes or properties shall me defined. This guarantees that implementations that have no knowledge of an extension can still properly use XML instances containing these extensions. Requirement http:www.opengis.netspecSWE2.0reqxsd-simple-componentsextension-coherent-with-core Req 61. Extensions of this standard shall not redefine or change the meaning or behavior of XML elements and types defined in this standard.

8.1.2 Base Abstract Complex Types

Several base abstract types are defined in the “basic_types.xsd” schema file. They are used as base substitution groups for all global XML elements defined in this standard. Below are XML schema snippet for the “AbstractSWE”, “AbstractSWEIdentifiable” and “AbstractSWEValue” elements and corresponding complex types: element name = AbstractSWE abstract = true type = swe:AbstractSWEType complexType name = AbstractSWEType sequence element name = extension type = anyType minOccurs = maxOccurs = unbounded sequence attribute name = id use = optional complexType The “AbstractSWE” complex type is the base for all derived complex types defined in this standard. It defines a first extension mechanism as an optional “extension” element that allows for any extended element content in a namespace other than the SWE Common Data Model namespace. It also has an optional “id” attribute allowing referencing the object that derives from it. element name = AbstractSWEIdentifiable abstract = true substitutionGroup = swe:AbstractSWE type = swe:AbstractSWEIdentifiableType complexType name = AbstractSWEIdentifiableType complexContent extension base = swe:AbstractSWEType sequence element name = identifier type = anyURI minOccurs = element name = label type = string minOccurs = element name = description type = string minOccurs = sequence extension Copyright © 2011 Open Geospatial Consortium 69 OGC 08-094r1 SWE Common Data Model complexContent complexType The “AbstractSWEIdentifiable” complex type derives from “AbstractSWE” and adds three identification elements. These elements are to be used as described in the UML section of this standard. The following XML elements and complex types are defined in the “simple_components.xsd” schema file: element name = AbstractDataComponent abstract = true type = swe:AbstractDataComponentType substitutionGroup = swe:AbstractSWEIdentifiable complexType name = AbstractDataComponentType abstract = true complexContent extension base = swe:AbstractSWEIdentifiableType attribute name = definition type = anyURI use = required attribute name = updatable type = boolean use = optional attribute name = optional type = boolean use = optional default =fals e extension complexContent complexType The “AbstractDataComponent” complex type adds XML attributes as defined in the UML class with the same name. The meaning of the corresponding UML class attributes is detailed in clause 7.2.2. Requirement http:www.opengis.netspecSWE2.0reqxsd-simple-componentsdefinition-resolvable Req 62. The “definition” attribute shall contain a URI that can be resolved to the complete human readable definition of the property that is represented by the data component. element name = AbstractSimpleComponent abstract = true substitutionGroup = swe:AbstractDataComponent type = swe:AbstractSimpleComponentType complexType name = AbstractSimpleComponentType abstract = true complexContent extension base = swe:AbstractDataComponentType sequence element name = quality type = swe:QualityPropertyType minOccurs = maxOccurs = unbounded element name = nilValues type = swe:NilValuesPropertyType minOccurs = sequence attribute name = referenceFrame type = anyURI use = optional attribute name = axisID type = string use = optional extension complexContent complexType The “AbstractSimpleComponent” complex type adds XML attributes as defined in the UML class with the same name. The meaning of the corresponding UML properties is detailed in clause 7.2.3. The “definition” attribute is mandatory on all elements derived 70 Copyright © 2011 Open Geospatial Consortium