Errata exists for this version of the document.
This Structured DataType is used to provide the metadata for a field of a custom Structure DataType. The StructureField is formally defined in Table 36.
Table 36 – StructureField Structure
Name |
Type |
Description |
StructureField |
Structure |
|
name |
String |
A name for the field that is unique within the StructureDefinition. |
description |
LocalizedText |
A localized description of the field |
dataType |
NodeId |
|
valueRank |
Int32 |
The value rank for the field. It shall be Scalar (-1) or a fixed rank Array (>=1). |
arrayDimensions |
UInt32[] |
This field specifies the maximum supported length of each dimension. If the maximum is unknown the value shall be 0. The number of elements shall be equal to the value of the valueRank field. This field shall be null if valueRank ≤ 0. The maximum number of elements of an array transferred on the wire is 2147483647 (max Int32). |
maxStringLength |
UInt32 |
If the dataType field is a String or ByteString then this field specifies the maximum supported length. If the maximum is unknown the value shall be 0. If the dataType field is not a String or ByteString the value shall be 0. If the valueRank is greater than 0 this field applies to each element of the array. |
isOptional |
Boolean |
The field indicates if a data type field in a Structure is optional. If the structureType is Union_2 this field shall be ignored. If the structureType is Structure_0 this field shall be false. |
StructureFields can be exposed as DataVariables that are children of the Variable that contains the Structure Value. In this case the BrowseName of the DataVariable shall be the same as the StructureField name and the NamespaceIndex of the BrowseName shall be the same as the Structure DataType Node NamespaceIndex.