Encoding Change Requests | OGC

S e n s o r M o d e l L a n g u a g e O G C 0 7 - 0 0 0

8.5 Encoding

Data aggregate values can be provided in various encodings, such as a text block encoded in ASCII, a binary block base 64 or true binary, or as a standard format defined by a MIME-type e.g., jpeg image. The conceptual model for encoding is provided in Fig. 8.7.

8.5.1 TextBlock

The TextBlock encoding type is used to describe a list or stream of text values separated by specific characters, and encoded in ASCII, given in the order specified in the dataComponents section. It is possible to define a tokenSeparator which should be used between values in the data structure, as well as a blockSeparator which should be used to separate consecutive block of values each block corresponds to one instance of the data structure specified in the dataComponents section. Both tokenSeparator and blockSeparator can be identical, but different values are useful if the transmission is error prone and needs frequent resynchronizations. The decimalSeparator property defines the character that separates the integer part of the decimal number from the fractional part. Figure 8.7. Encoding model. Copyright © 2007 Open Geospatial Consortium, Inc. All Rights Reserved. 49 S e n s o r M o d e l L a n g u a g e O G C 0 7 - 0 0 0

8.5.2 BinaryBlock

The BinaryBlock encoding type is used to describe a binary data stream containing values of quantities listed in the dataComponents section. The byteEncoding attribute specifies the stream’s byte encoding method, which can be raw binary if data is available in an “out of band” fashion, but also base64 or base16 hex in order to allow the data to be encapsulated in an XML document. The byteOrder attribute specifies if multiple bytes data types are written with the Most Significant Byte first bigEndian or Least Significant Byte first littleEndian. The BinaryBlock object then takes a list of members that can be either Component or Block and which further define the parameters for the encoding of each scalar value or block of data in the data structure.. Using Component, each scalar value can be attributed a dataType i.e., byte, short, int, long, float, double, ASCII-string, UTF-string, etc., a number of significantBits, a number of paddingBits before and after the value, as well as encryption method used. Using Block, encoding parameters for a block of data such as an array or group can similarly be specified, including byteLength, paddingBytes before and after the block as well as encryption and compression. This allows for defining the compression or encryption scheme used for a block of data e.g. specifying JPEG compression for an image. In both Component and Block classes, the ref attribute is used to point to the corresponding data component in the data structure defined previously.

8.5.3 StandardFormat

The StandardFormat encoding type allows one to encapsulate data presented in “well- known” formats such as jpeg or gif. This is done by specifying the mimeType of the corresponding format. Note that in this case, the MIME type applies to the whole data structure.

8.5.4 MultiplexedStreamFormat

MultiplexedStreamFormat specifies any format that supports the transmittal of disparate data clusters within an IO stream. The format of the streaming data must be specified by the type property. Examples of multiplexed data stream formats include Transducer Model Language TML data streams or Advanced Streaming Format ASF.

8.5.5 XMLBlock

The set of encodings is completed by XMLBlock. The xmlElement attribute indicates the XML element that carries the data, designated using the standard xs:QName identifier. Copyright © 2007 Open Geospatial Consortium, Inc. All Rights Reserved. 50 S e n s o r M o d e l L a n g u a g e O G C 0 7 - 0 0 0

8.6 Phenomenon