The DataSetMetaData is a subtype of DataTypeSchemaHeader. The DataTypeSchemaHeader provides OPC UA DataType definitions used in the DataSetMetaData. The DataTypeSchemaHeader is defined in OPC 10000-5.
The DataTypeSchemaHeader provides information that is required when the DataSetMetaData is used outside the scope of an OPC UA Server e.g when sent in PubSub messages or when the PubSubConfiguration is exchanged with the UABinaryFileDataType. This information includes a namespace array and DataType descriptions. OPC UA namespace defined DataTypes are not included in the PubSubConfiguration.
The DataTypeSchemaHeader of the DataSetMetaData shall be populated with the necessary information. This includes all namespaces and DataTypes that are potentially contained in the associated DataSetMessages. DataTypes defined in the OPC UA namespace (NamespaceIndex 0) that are not built-in types shall be included in the DataSetMetaData.
A Publisher should keep the namespaces array in the DataSetMetaData unchanged even if the order of namespaces is changed in the OPC UA Server of the Publisher. A change of the namespace array in the DataSetMetaData requires a change to the MajorVersion in the DataSetMetaData.
The Subscriber must map namespace indices in received messages if the data is processed in the context of an OPC UA Server information model e.g. if the values are written to target Variables. This affects encoding NodeIds in ExtensionObjects but also all other namespace indices in NodeIds and BrowseNames contained in the messages. If the Subscriber receives Structure DataTypes where the target Variables DataTypes have the same structure but different DataType NodeIds, the Subscriber must verify the consistency of the layout at start-up and must map the complete encoding NodeId when receiving the data.
If the DataSetMetaData is created outside the Publisher, the same mapping may be required in the Publisher.