A DataTypeDefinitiondefines a representation of a UADataTypethat can be used by design tools to automatically create serialization code. The fields in the DataTypeDefinitiontype are defined in Table F.12.

This field may not be present for DataTypesthat have no fields. Code generators may choose to create a class with no fields if the programming environment supports the concept.

Table F.12– DataTypeDefinition

Element

Type

Description

Name

QualifiedName

A unique name for the data type.

This name should be the same as the BrowseNamefor the containing DataType.

SymbolicName

String

A symbolic name for the data type that can be used as a class/structure name in autogenerated code. It should only be specified if the Namecannot be used for this purpose.

Only letters, digits or the underscore (‘_’) are permitted and the first character shall be a letter.

This field is only specified for nested DataTypeDefinitions.

The SymbolicNameof the DataType Nodeis used otherwise.

BaseType

QualifiedName

Not used. Kept in schema for backward compatibility.

IsUnion

Boolean

This flag indicates if the data type represents a union.

Only one of the Fields defined for the data type is encoded into a value.

This field is optional. The default value is false.

If this value is true, the first field is the switch value.

IsOptionSet

Boolean

This flag indicates that the data type defines the OptionSetValues Property.

This field is optional. The default value is false.

Fields

DataTypeField []

The list of fields that make up the data type.

This definition assumes the structure has a sequential layout.

For enumerations, the fields are simply a list of values.

This list does not include fields inherited from a base DataType.

When Applicationsingest a UANodeSetthey need to follow the HasSubtype Referencesbetween DataType Nodesto collect all of the fields needed to fill in the DataTypeDefinition Attribute.