Hierarchical Name Value Lists

5. Quantity Required - Specifies whether a value is required or optional for this quantity. 6. Data Type - Specifies the data type of this quantity, perhaps selecting from a separately specified set of data types. 7. Units Name - Specifies the physical units of values for this quantity, using human readable text. Omitted when not applicable. 8. Minimum Value - Specifies the maximum value of a numerical quantity. Omitted when not applicable. 9. Maximum Value - Specifies the maximum value of a numerical quantity. Omitted when not applicable. 10. Default Value - Specifies the default or null value for this quantity. Omitted when not applicable. 11. Legal Value Expected - Specifies if the value is expected to be one of an enumerated set of standard or legal values. 12. Legal Value and Meaning - Specifies a legal value of this quantity, and the human readable meaning of that value. This data is repeated for each legal value, and is omitted when not applicable. The data available for each exception that can be raised by operations might include: 1. Software Name - Software name of this exception, perhaps fixed length and not containing spaces. 2. Human Name - Human understandable name of this exception, variable length and can contain multiple words separated by spaces. 3. Definition - Human understandable text defining this exception and the conditions when it is raised. 4. Comments - Human understandable text providing more information about this exception and its use, including recovery suggestions. Additional data available for each operation might include: 1. Software Name - Software name of this operation, perhaps fixed length and not containing spaces. 2. Human Name - Human understandable name of this operation, variable length and can contain multiple words separated by spaces. 3. Function - Human understandable text defining the functions performed by this operation and its expected use. 4. Comments - Human understandable text providing more information about this operation and its use.

4.14. Hierarchical Name Value Lists

A Name Value List is a well-known data structure for flexibly transferring data. A Name Value List stores a variable length list of name and value pairs. Each Name is recorded as a character string. Different names can have associated values of different data types, including integer number, floating point number, and character string. The data type used for each value is selected appropriate to the definition of the associated name. A hierarchy of Name Value Lists can be used. That is, the value of a Name Value pair can be allowed to be a lower level Name Value List. Such a Name Value pair can also be allowed to be repeated, using the same Name but containing different Values in different lower level Name Value Lists. When hierarchical Name Value Lists are used, the top level Name Value List will often contain one or more values that are lower level Name Value Lists. Using ISO standard IDL, the structure of hierarchical Name Value Lists is: The Open GIS Abstract Specification Page 51 Volume 15: Image Exploitation Services 00-115 corrigendum Type: Name typedef string Name; Type: Name Value struct NameValue { Name name; Computer name of item any value; Value of item }; Note: The ìanyî type includes a Name Value List and probably other data structures Type: Name Value List typedef sequence NameValue NameValueList; The value in a Name Value pair can also be allowed to be a data structure other than a Name Value List. Some other useful data structures include: 1. Position coordinates, a structure containing the values of two or three coordinates 2. List or sequence of simple values, such as a list of character string values used for a list of names 3. List or sequence of simple data structures, such as position coordinates data structures used for the vertices of a polygon A metadata entity, section, or set could be implemented or transferred using a hierarchical Name Value List data structure. Similarly, a Name Value List structure could be used for a metadata set, a feature, a feature collection, a set of strategy parameters, or many other service inputs and outputs. If and when a Name Value List is used to transfer service inputs and outputs, the specific set of Names and Values used must still be carefully specified. If service inputs and outputs are specified in ISO standard IDL using Name Value Lists as defined above, then the specific set of Names and Values used must be separately specified not in the interface IDL. A set of Names and Values could be specified in a variety of ways, including using tables such as Table 4-3 in Section 4.12.1 or the tables used in the draft ISO Metadata Standard, 15046-15.

4.15. Input and Output Specifications