ObjectTypes provide definitions for Objects. ObjectTypes are defined using the ObjectType NodeClass, which is specified in Table 12.
Table 12 – ObjectType NodeClass
|Base NodeClass Attributes||M||--||Inherited from the Base NodeClass. See 5.2.|
|IsAbstract||M||Boolean||A boolean Attribute with the following values:
TRUE it is an abstract ObjectType, i.e. no Objects of this type shall exist, only Objects of its subtypes.
FALSE it is not an abstract ObjectType, i.e. Objects of this type can exist.
|HasComponent||0..*||HasComponent References identify the DataVariables, the Methods, and Objects contained in the ObjectType.
If and how the referenced Nodes are instantiated when an Object of this type is instantiated, is specified in 6.4.
|HasProperty||0..*||HasProperty References identify the Properties of the ObjectType. If and how the Properties are instantiated when an Object of this type is instantiated, is specified in 6.4.|
|HasSubtype||0..*||HasSubtype References identify ObjectTypes that are subtypes of this type. The inverse SubtypeOf Reference identifies the parent type of this type.|
|GeneratesEvent||0..*||GeneratesEvent References identify the type of Events instances of this type may generate.|
|<other References>||0..*||ObjectTypes may contain other References that can be instantiated by Objects defined by this ObjectType.|
|NodeVersion||O||String||The NodeVersion Property is used to indicate the version of a Node.
The NodeVersion Property is updated each time a Reference is added or deleted to the Node the Property belongs to. Attribute value changes do not cause the NodeVersion to change. Clients may read the NodeVersion Property or subscribe to it to determine when the structure of a Node has changed.
|Icon||O||Image||The Icon Property provides an image that can be used by Clients when displaying the Node. It is expected that the Icon Property contains a relatively small image.|
The ObjectType NodeClass inherits the base Attributes from the Base NodeClass defined in 5.2. The additional IsAbstract Attribute indicates if the ObjectType is abstract or not.
The ObjectType NodeClass uses the HasComponent References to define the DataVariables, Objects, and Methods for it.
The HasProperty Reference is used to identify the Properties. The Property NodeVersion is used to indicate the version of the ObjectType. The Property Icon provides an icon of the ObjectType. There are no additional Properties defined for ObjectTypes in this document. Additional parts of this series of standards may define additional Properties for ObjectTypes.
HasSubtype References are used to subtype ObjectTypes. ObjectType subtypes inherit the general semantics from the parent type. The general rules for subtyping apply as defined in Clause 6. It is not required to provide the HasSubtype Reference for the supertype, but it is required that the subtype provides the inverse Reference to its supertype.
GeneratesEvent References identify the type of Events that instances of the ObjectType may generate. These Objects may be the source of an Event of the specified type or one of its subtypes. Servers should make GeneratesEvent References bidirectional References. However, it is allowed to be unidirectional when the Server is not able to expose the inverse direction pointing from the EventType to each ObjectType supporting the EventType. Note that the EventNotifier Attribute of an Object and the GeneratesEvent References of its ObjectType are completely unrelated. Objects that can generate Events might not be used as Objects to which Clients subscribe to get the corresponding Event notifications.
GeneratesEvent References are optional, i.e. Objects may generate Events of an EventType that is not exposed by its ObjectType.
ObjectTypes may use any additional References to define relationships to other Nodes. No restrictions are placed on the types of References used or on the NodeClasses of the Nodes that may be referenced. However, restrictions may be defined by the ReferenceType excluding its use for ObjectTypes. Standard ReferenceTypes are described in Clause 7.
All Nodes referenced with forward hierarchical References shall have unique BrowseNames in the context of an ObjectType (see 4.5).