This Structured DataTypeis used to provide the metadata for a field of a custom Structure DataType. The StructureFieldis 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

The NodeIdof the DataTypefor the field.

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 Structureis optional. If the structureTypeis Union_2this field shall be ignored. If the structureTypeis Structure_0this field shall be false.

StructureFieldscan be exposed as DataVariablesthat are children of the Variablethat contains the Structure Value. In this case the BrowseNameof the DataVariableshall be the same as the StructureFieldname and the NamespaceIndexof the BrowseName shall be the same as the Structure DataType Node NamespaceIndex.