Attributes shared by all simple data components

SWE Common Data Model OGC 08-094r1 Requirement http:www.opengis.netspecSWE2.0requml-simple-componentsaxis-valid Req 19. The value of the “axisID” attribute shall correspond to the “axisAbbrev” attribute of one of the coordinate system axes listed in the specified reference frame definition. The union of these two attributes thus uniquely identifies one axis of one given reference frame along which the value of the component is expressed. Note that even though the ISO 19111 model assigns units to CRS axes in addition to a direction, only the direction is used in this standard and the unit is defined by the data component itself. This allows expressing other quantities than the one predefined along the CRS’s axes such as velocity, acceleration or rotation. A component representing a projected quantity can be defined in isolation or can be contained within a “Vector” aggregate when it contributes to the specification of a multi- dimensional quantity see clause 7.3.2. In this last case the reference frame definition is usually inherited from the parent “Vector” instance and is thus omitted from the scalar component itself. However, the “axisID” attribute still needs to be specified. Requirement http:www.opengis.netspecSWE2.0requml-simple-componentsaxis-defined Req 20. The “axisID” attribute shall be specified by all instances of concrete classes derived from “AbstractSimpleComponent” and representing a property projected along a spatial axis. Requirement http:www.opengis.netspecSWE2.0requml-simple-componentsref-frame-defined Req 21. The “referenceFrame” attribute shall be specified by all instances of concrete classes derived from “AbstractSimpleComponent” and representing a property projected along a spatial or temporal axis, except if it is inherited from a parent aggregate Vector or Matrix. The optional “quality” attribute is used to provide simple quality information as discussed in 6.4.1. It is of type “Quality” which is a union of several classes as defined in clause 7.2.15. Its multiplicity is more than one which means that several quality measures can be given on for a single data component. Example Both precision and accuracy of the value associated to a data component can be specified concurrently see http:en.wikipedia.orgwikiAccuracy_and_precision for a good explanation of the difference between the two. Copyright © 2011 Open Geospatial Consortium 27 OGC 08-094r1 SWE Common Data Model The optional “nilValues” attribute is used to provide a list i.e. one or more of NIL values as defined in clause 6.4.2. The model of the “NilValues” class is detailed in clause 7.2.16. Although this is not shown on Figure 7.7, most concrete sub-classes of “AbstractSimpleComponent” also define a “constraint” attribute that allows further restriction of the possible values allowed by the corresponding representation. This implements concepts defined in clause 6.2.6. These constraints always apply to the value of the property as represented by the corresponding data component whether this value is given inline data container case or out-of-band data descriptor case. Requirement http:www.opengis.netspecSWE2.0requml-simple-componentsvalue-constraint-valid Req 22. The property value formally the representation of the property value attached to an instance of a class derived from “AbstractSimpleComponent” shall satisfy the constraints specified by this instance. All concrete sub-classes of “AbstractSimpleComponent” also define a “value” attribute. This attribute is not defined in this abstract class because it has a different primitive type in each concrete data component class See following clauses. Requirement http:www.opengis.netspecSWE2.0requml-simple-componentsvalue-attribute-present Req 23. All concrete classes derived from the “AbstractSimpleComponent” class directly or indirectly shall define an optional “value” attribute and use it as defined by this standard. The “value” attribute is always optional on any simple data component in order to allow for both data descriptor and data container cases: - When the data component is used as a data container, this attribute always carries the value of the associated property formally the representation of the estimated or asserted value of the property. Quality information, nil values definitions and constraints thus apply to the value taken by this attribute. - When the data component is used as a data descriptor, its actual value is provided somewhere else, often encoded as part of a larger data block. In this case, quality information, nil values definitions and constraints apply to the out-of-band value and not to the “value” attribute. Instead, the “value” attribute can then be used to specify a default value. 28 Copyright © 2011 Open Geospatial Consortium SWE Common Data Model OGC 08-094r1 Whether the data component is used as a descriptor or a container depends on the context and should be explicitly stated by any standard that makes use of the SWE Common Data Model. All UML classes in this package that derive from “AbstractSimpleComponent” define a “value” attribute with the adequate primitive type and whose meaning is the one explained above.

7.2.4 Boolean Class

The “Boolean” class is used to specify a scalar data component with a Boolean representation as defined in clause 6.2.1. It derives from “AbstractSimpleComponent” and is shown below: AbstractSimpleComponent «Type» Boolean «property» + value: Boolean [0..1] Figure 7.8 – Boolean Class The “value” attribute of this class is of the boolean primitive type. Note: The boolean primitive type is defined in ISO19103 and is not to be confused with the “Boolean” class defined in this standard. This clause is the only place in this standard where the ISO 19103 boolean data type is referenced. All other occurrences of the “Boolean” class in this standard refer to the class defined in this clause.

7.2.5 Text Class

The “Text” class is used to specify a component with a textual representation as defined in clause 6.2.5. It derives from “AbstractSimpleComponent” and is shown below: AbstractSimpleComponent «Type» Text «property» + constraint: AllowedTokens [0..1] + value: CharacterString [0..1] Figure 7.9 – Text Class Copyright © 2011 Open Geospatial Consortium 29 OGC 08-094r1 SWE Common Data Model The “constraint” attribute allows further restricting the range of possible values by using the “AllowedTokens” class defined in clause 7.2.17. This class allows the definition of the constraint by either enumerating the allowed tokens andor by specifying a pattern that the value must match. The “value” attribute or the corresponding value in out-of-band data is a string that must match the constraint. Note: The “Text” component can be used to wrap a string representing complex content such as an expression in a programming language, xml or html content. This practice should however be used only for systems that don’t require high level of interoperability since the client must know how to interpret the content. Also care must be taken to properly escape such content before it is inserted in an XML document or in a SWE Common data stream.

7.2.6 Category Class

The “Category” class is used to specify a scalar data component with a categorical representation as defined in clause 6.2.2. It derives from “AbstractSimpleComponent” and is shown below: AbstractSimpleComponent «Type» Category «property» + codeSpace: Dictionary [0..1] + constraint: AllowedTokens [0..1] + value: CharacterString [0..1] Figure 7.10 – Category Class The “codeSpace” attribute is of type “Dictionary” and allows listing and defining the meaning of all possible values for this component. It is expected that instances of the “Dictionary” class will usually be referenced rather than included inline by implementations of this class since the code space definition is usually obtained from a controlled vocabulary maintained at a remote location. This type of implementation is the one chosen in the XML encodings defined by this standard. The “constraint” attribute allows further restricting the list of possible values by using the “AllowedTokens” class defined in clause 7.2.17. This is usually done by specifying a limited list of possible values, which have to be extracted from the code space. 30 Copyright © 2011 Open Geospatial Consortium