AllowedTimes Class Unions of simple component classes

SWE Common Data Model OGC 08-094r1

7.3 Requirements Class: Record Components Package Requirements Class

http:www.opengis.netspecSWE2.0requml-record-components Target Type Software Implementation or Encoding of the Conceptual Models Dependency http:www.opengis.netspecSWE2.0requml-simple-components As detailed in the following clauses, this package defines classes modeling record style component types that can be nested to build complex structures from the simple component types introduced in 7.2. Requirement http:www.opengis.netspecSWE2.0requml-record-componentsdependency-simple-components Req 37. An encoding or software passing the “Record Components UML Package” conformance test class shall first pass the “Basic Types and Simple Components UML Packages” conformance test class. The classes defined in this package are “DataRecord” and “Vector” other aggregates are defines in the “Choice Components” and “Block Components” packages defined in clauses 7.4 and 7.5 respectively. The UML model is exposed below: AbstractSWEIdentifiable «Type» Simple Components:: AbstractDataComponent «property» + definition: ScopedName [0..1] + optional: Boolean [0..1] = false + updatable: Boolean [0..1] «Type» DataRecord «Type» Vector «property» «property» + field: AbstractDataComponent [1..] + referenceFrame: SC_CRS + localFrame: SC_CRS [0..1] + coordinate: AnyNumerical [1..] Figure 7.24 – Record Data Components Copyright © 2011 Open Geospatial Consortium 43 OGC 08-094r1 SWE Common Data Model Requirement http:www.opengis.netspecSWE2.0requml-record-componentspackage-fully-implemented Req 38. The encoding or software shall correctly implement all UML classes defined in the “Record Components” package. As with simple component types, all data aggregates inherit attributes from the “AbstractDataComponent” class. In this case, however, these attributes provide information about the group as a whole rather than its individual components. Example A particular “DataRecord” might represent a standard collection of error codes coming from a GPS device. A particular “Vector” might represent the linear or angular velocity vector of an aircraft. In these two cases, the “definition” attribute should reference a semantic description in a registry, so that the data consumer knows what kind of data the aggregate represents. This semantic description can then be interpreted appropriately by consuming clients: for example to automatically decide how to style the data in visualization software.

7.3.1 DataRecord Class

The “DataRecord” class is modeled on the definition of ‘Record’ from ISO 11404. In this definition, a record is a composite data type composed of one to many fields, each of which having its own name and type definition. Thus it defines some logical collection of components of any type that are grouped for a given purpose. As shown on the following figure, the “DataRecord” class in SWE Common is based on a full composite design pattern, such that each one of its “field” can be of a different type, including simple component types as well as any aggregate component type. AbstractDataComponent «Type» DataRecord «property» + field: AbstractDataComponent [1..] Figure 7.25 – DataRecord Class The “DataRecord” class derives from the “AbstractDataComponent” class, which is necessary to enable the full composite pattern in which a “DataRecord” can be used to group scalar components, but also other records, arrays and choices recursively. Each “field” attribute can take an instance of any concrete sub-class of “AbstractDataComponent”, which is the superset of all data component types defined in this standard. The name of each field must be unique within a given “DataRecord” 44 Copyright © 2011 Open Geospatial Consortium