OPC 10000-3defines the data type model. A DataTypepoints to one or several DataTypeEncoding Objects. The approach of DataTypeDictionariesextends this model (see Figure D.1). The DataTypeEncoding Objectpoints to exactly one Variableof type DataTypeDescriptionType. The DataTypeDescription Variablebelongs to a DataTypeDictionary Variable.
The DataTypeDictionary describes a set of DataTypesin sufficient detail to allow Clientsto parse/interpret Variable Valuesthat they receive and to construct Valuesthat they send. The DataTypeDictionary is represented as a Variableof type DataTypeDictionaryTypein the AddressSpace, the description about the DataTypesis contained in its Value Attribute. All containing DataTypesexposed in the AddressSpaceare represented as Variablesof type DataTypeDescriptionType. The Valueof one of these Variables identifies the description of a DataTypein the Value Attributeof the DataTypeDictionary.
The DataTypeof a DataTypeDictionary Variableis always a ByteString. The format and conventions for defining DataTypes in this ByteString are defined by DataTypeSystems. DataTypeSystemsare identified by NodeIds. They are represented in the AddressSpaceas Objectsof the ObjectType DataTypeSystemType. Each Variable representing a DataTypeDictionaryreferences a DataTypeSystem Objectto identify their DataTypeSystem.
A client shall recognise the DataTypeSystemto parse any of the type description information. OPC UA Clientsthat do not recognise a DataTypeSystemwill not be able to interpret its type descriptions, and consequently, the values described by them. In these cases, Clientsinterpret these values as opaque ByteStrings.
OPC Binary and W3C XML Schema are examples of DataTypeSystems. The OPC Binary DataTypeSystemis defined in Annex E. OPC Binary uses XML to describe binary data values. W3C XML Schema is specified in REF XMLSchema1 \h XML Schema Part 1and REF XMLSchema2 \h XML Schema Part 2.