The UANodeSet is the root of the document. It defines a set of Nodes, their Attributes and References. References to Nodes outside of the document are allowed.
The structure of a UANodeSet is shown in Table F.1.
|
Element |
Type |
Description |
|
NamespaceUris |
UriTable |
A list of NamespaceUris used in the UANodeSet. This array shall have at least one entry which is equal to the ModelUri for each entry in the Models array. All entries in this list shall have an entry in Model array or an entry in the RequiredModel arrays. |
|
ServerUris |
UriTable |
A list of ServerUris used in the UANodeSet. |
|
Models |
ModelTableEntry [] |
A list of models that are defined in the UANodeSet along with any dependencies these models have. |
|
ModelUri |
String |
The URI for the model. This URI shall be one of the entries in the NamespaceUris table. |
|
XmlSchemaUri |
String |
The URI for the XML schema namespace used to serialize values of the DataTypes defined by the Model. The field is required if DataTypes are defined in the UANodeSet. The UA XML Encoding (5.3) rules implicitly define the XML schema for any DataType described by a DataTypeDefinition (F.12). |
|
Version |
String |
The version of the model defined in the UANodeSet. This is a human readable string and not intended for programmatic comparisons. |
|
PublicationDate |
DateTime |
When the model was published. This value is used for comparisons if the Model is defined in multiple UANodeSet files when the ModelVersion is not provided. |
|
ModelVersion |
VersionString |
The version of the UANodeSet expressed as a string which conforms to the syntax defined in the SemVer specification. The comparison rules from the specification are used to determine which UANodeSet precedes another. When comparing two UANodeSets the following rules apply: When the ModelVersion is specified in both UANodeSets it is used for the comparison and if they are the same then the PublicationDate is used. When the ModelVersion is specified in only one UANodeSet it is considered newer than the one without the ModelVersion. The PublicationDate is ignored. When the ModelVersion is not specified in either UANodeSet the PublicationDate is used for comparison. The ModelVersion is mandatory for all UANodeSets conforming to version 1.05.02 or later of this specification. |
|
RolePermissions |
RolePermission [] |
The list of default RolePermissions for all Nodes in the model. |
|
AccessRestrictions |
AccessRestriction |
The default AccessRestrictions that apply to all Nodes in the model. The default value is 0. |
|
RequiredModels |
ModelTableEntry [] |
A list of dependencies for the model. If the model requires a minimum version, the ModelVersion and PublicationDate shall be specified. Tools which attempt to resolve these dependencies may accept any model with the same or later ModelVersion and if ModelVersion is the same then accept the same or later PublicationDate. The RolePermission and AccessRestrictions elements shall not be specified for any entry in this list. A dependency shall only be specified if the ModelUri is in the NamespaceUris list. Entries in this list shall not have any RequiredModels. |
|
Aliases |
AliasTable |
|
|
Extensions |
xs:any [] |
An element containing a list of vendor defined extensions to the UANodeSet. |
|
LastModified |
DateTime |
The last time a document was modified. |
|
<choice> |
UAObject UAVariable UAMethod UAView UAObjectType UAVariableType UADataType UAReferenceType |
The NamespaceUris is a list of URIs for namespaces used in the UANodeSet. The NamespaceIndexes used in NodeIds, ExpandedNodeIds and QualifiedNames identify an element in this list. The first index is always 1 (0 is always the OPC UA namespace).
The ServerUris is a list of URIs for Servers referenced in the UANodeSet. The ServerIndex in ExpandedNodeIds identifies an element in this list. The first index is always 1 (0 is always the current Server).
The Models element specifies the Models which are formally defined by the UANodeSet. It includes version information as well as information about any dependencies which the model may have. If a Model is defined in the UANodeSet then the file shall also define an instance of the NamespaceMetadataType ObjectType. See OPC 10000-5 for more information. Following the references in the RequiredModels field shall not result in circular dependencies.
The XML schema file associated with a UANodeSet shall have an XML annotation with a Model element that identifies the associated UANodeSet with the form:
<xs:annotation>
<xs:appinfo>
<ua:Model
ModelUri="<model-uri>" ModelVersion="<model-version>" PublicationDate="<publication-date>"
/>
</xs:appinfo>
</xs:annotation>
Where:
- <model-uri> is the URI of the associated UANodeSet;
- <model-version> is the SemVer of the associated UANodeSet;
- <publication-date> is the date the associated UANodeSet was published.
When NodeSets are normative documents for a specification, they can include Nodes, such as unattached Properties, that exist only to formally define elements of the specification. For example, the base NodeSet for this specification includes an unattached Property Node called "NodeVersion" which can be added to any Node. The Node in the NodeSet defines the BrowseName, DataType and ValueRank.
The UANodeSet aliases are a list of string substitutions for NodeIds. UANodeSet aliases can be used to make the file more readable by allowing a string like ‘HasProperty’ in place of a numeric NodeId (i=46). Aliases are optional. Aliases may only be used in fields defined in this Annex that have the NodeId type such as ParentNodeId (F.7) or DataType (F.8). Fields with the Variant type shall not contain UANodeSet aliases.
The Extensions are free form XML data that can be used to attach vendor defined data to the UANodeSet.