A SerializationScope is a subset of Nodes in the Information Model which are mapped into the SerializationValue, and which shall take part in a SerializationProcess. A SerializationScope consists of Nodes reachable from a start Node and the start Node itself (SerializationStartNode) if the start Node is a Variable. There may exist an arbitrary number of SerializationScopes.
Since the SerializationScope potentially comprises many Nodes reachable from the SerializationStartNode down to an arbitrary depth, the possibility of limiting the number of Nodes which shall be part of the SerializationScope is needed (see SerializationProperties and 6.2). As shown in Figure 3, “Property2” is reachable from the SerializationStartNode, but is excluded from the SerializationScope.
The Object providing an interface for the configuration of a SerializationScope is the SerializationEntity. It allows settings regarding the content of the DataType representing Variables (SerializationFieldDataType) inside the SerializationValue also and is the parent Object of the SerializedData Variable. The SerializationValue is the Value of the SerializedData Variable. The DataType of the SerializationValue maps all Values of the Variables in the SerializationScope (see Figure 3).
The SerializationProperties are provided by the SerializationEntity (see Figure 3) and allow the configuration of the SerializationScope and the handling of metadata. Including or excluding Nodes referenced using certain ReferenceTypes, limiting the depth of the SerializationScope and settings which companion values like statusCodes shall be part of the SerializationFieldDataType of Variables is also possible (see 6.2 also).
The SerializationStartNode refers to one or more SerializationEntity Objects with a HasSerializationEntity ReferenceType.
Figure 3 shows the relationship of the SerializationStartNode, the SerializationEntity Object, the SerializedData Variable and the SerializationValue containing the serialized Values of the Nodes in the SerializationScope.
Figure 3 – SerializationEntity and SerializationValue
The SerializationFieldDataType of Variables is the DataType used to represent Variables of the SerializationScope inside the SerializationValue. Variables can be represented by the DataType of the Variable itself.
Dependent on SerializationProperties, Variables can be represented by Structure DataTypes also (see 6.4.2). If the Variable has children in the SerializationScope, the SerializationFieldDataType for the Variable is always a Structure DataType (see 6.4.3).
The SerializationFieldDataType of Objects is the Structure DataType used to represent Objects and the child Nodes of these Objects in the SerializationScope (see 6.4.4).
The SerializationFieldDataTypes and the SerializationValue DataType are generated by the Server.