This ObjectType defines the metadata for a namespace provided by the Server. It is formally defined in Table 21.

Instances of this Object allow Servers to provide more information like version information in addition to the namespace URI. Important information for aggregating Servers is provided by the StaticNodeIdTypes, StaticNumericNodeIdRange and StaticStringNodeIdPattern Properties.

Table 21 – NamespaceMetadataType definition

Attribute

Value

BrowseName

NamespaceMetadataType

IsAbstract

False

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the BaseObjectType defined in 6.2

HasProperty

Variable

NamespaceUri

String

PropertyType

Mandatory

HasProperty

Variable

NamespaceVersion

String

PropertyType

Mandatory

HasProperty

Variable

NamespacePublicationDate

DateTime

PropertyType

Mandatory

HasProperty

Variable

IsNamespaceSubset

Boolean

PropertyType

Mandatory

HasProperty

Variable

StaticNodeIdTypes

IdType[]

PropertyType

Mandatory

HasProperty

Variable

StaticNumericNodeIdRange

NumericRange[]

PropertyType

Mandatory

HasProperty

Variable

StaticStringNodeIdPattern

String

PropertyType

Mandatory

HasComponent

Object

NamespaceFile

-

AddressSpaceFileType

Optional

HasProperty

Variable

DefaultRolePermissions

RolePermissionType[]

PropertyType

Optional

HasProperty

Variable

DefaultUserRolePermissions

RolePermissionType[]

PropertyType

Optional

HasProperty

Variable

DefaultAccessRestrictions

AccessRestrictionType

PropertyType

Optional

HasProperty

Variable

ConfigurationVersion

VersionTime

PropertyType

Optional

HasProperty

Variable

ModelVersion

SemanticVersionString

PropertyType

Optional

Conformance Units

Base Info ServerType

The BrowseName of instances of this type shall be derived from the represented namespace. This can, for example, be done by using the index of the namespace in the NamespaceArray as NamespaceIndex of the QualifiedName and the namespace URI as name of the QualifiedName.

The NamespaceUri Property contains the namespace represented by an instance of the MetaDataType.

The NamespaceVersion Property provides version information for the namespace. It is intended for display purposes and shall not be used to programmatically identify the latest version. If there is no formal version defined for the namespace this Property shall be set to a null String.

The NamespacePublicationDate Property provides the publication date of the namespace version. This Property value can be used by Clients to determine the latest version if different versions are provided by different Servers when the ModelVersion is not provided. If there is no formal publication date defined for the namespace this Property shall be set to a null DateTime.

The IsNamespaceSubset Property defines whether all Nodes of the namespace are accessible in the Server or only a subset. It is set to FALSE if the full namespace is provided and TRUE if not. If the completeness is unknown then this Property shall be set to TRUE.

Static Nodes are identical for all Attributes in all Servers, including the Value Attribute. For TypeDefinitionNodes, also the InstanceDeclarations shall be identical. That means that for static Nodes the semantic is always the same. Namespaces with static Nodes are for example namespaces defined by standard bodies like the OPC Foundation. This is important information for aggregating Servers. If the namespace is dynamic and used in several Servers the aggregating Server needs to distinguish the namespace for each aggregated Server. The static Nodes of a namespace only need to be handled once, even if they are used by several aggregated Servers.

The StaticNodeIdTypes Property provides a list of IdTypes used for static Nodes. All Nodes in the AddressSpace of the namespace using one of the IdTypes in the array shall be static Nodes.

The StaticNumericNodeIdRange Property provides a list of NumericRanges used for numeric NodeIds of static Nodes. If the StaticNodeIdTypes Property contains an entry for numeric NodeIds then this Property is ignored.

The StaticStringNodeIdPattern Property provides a regular expression as defined for the Like Operator defined in OPC 10000-4 to filter for string NodeIds of static Nodes. If the StaticNodeIdTypes Property contains an entry for string NodeIds then this Property is ignored.

The Object NamespaceFile contains all Nodes and References of the namespace in an XML file where the Information Model XML Schema is defined in OPC 10000-6. The XML file is provided through an AddressSpaceFileType Object.

The DefaultRolePermissions Property provides the default permissions if a Server supports RolePermissions for the Namespace. A Node in the Namespace overrides this default by adding a RolePermissions Attribute to the Node. If a Server implements a vendor-specific RolePermissions model for a Namespace, it does not add the DefaultRolePermissions Property to the NamespaceMetadata Object.

The DefaultUserRolePermissions Property provides the default user permissions if a Server supports UserRolePermissions for the Namespace. A Node in the Namespace overrides this default by adding a UserRolePermissions Attribute to the Node. If a Server implements a vendor-specific UserRolePermissions model for a Namespace, it does not add the DefaultUserRolePermissions Property to the NamespaceMetadata Object.

The DefaultAccessRestrictions Property is present if a Server supports AccessRestrictions for the Namespace and provides the defaults. A Node in the Namespace overrides this default by adding a AccessRestrictions Attribute to the Node. If a Server implements a vendor-specific AccessRestriction model for a Namespace, it does not add the DefaultAccessRestrictions Property to the NamespaceMetadata Object.

The optional ConfigurationVersion Property indicates the current configuration of all Nodes of this Namespace. A Node of this Namespace is identified by having the corresponding NamespaceIndex in the NodeId. A Client can use the ConfigurationVersion Property in conjunction with the Constant Field of the AccessLevelEx Attribute, defined in OPC 10000-3, to optimize the use of Variables which have a constant value.

The optional ModelVersion Property indicates the InformationModel version expressed as a SemanticVersionString allowing programmatic comparisons.