Underlying systems are often large and Clientsoften have an interest in only a specific subset of the data. They do not need, or want, to be burdened with viewing Nodesin the AddressSpacefor which they have no interest.

To address this problem, this standard defines the concept of a View. Each Viewdefines a subset of the Nodesin the AddressSpace. The entire AddressSpaceis the default View. Each Nodein a Viewmay contain only a subset of its References, as defined by the creator of the View. The View Nodeacts as the root for the Nodesin the View. Viewsare defined using the View NodeClass, which is specified in Table 10.

All Nodescontained in a Viewshall be accessible starting from the View Nodewhen browsing in the context of the View. It is not expected that all containing Nodescan be browsed directly from the View Node but rather browsed from other Nodescontained in theView.

A View Nodemay not only be used as additional entry point into the AddressSpacebut as a construct to organize the AddressSpaceand thus as the only entry point into a subset of the AddressSpace. Therefore, Clientsshall not ignore View Nodeswhen exposing the AddressSpace. Simple Clientsthat do not deal with Viewsfor filtering purposes can, for example, handle a View Nodelike an Objectof type FolderType(see 5.5.3).

Table 10– View NodeClass

Name

Use

Data Type

Description

Attributes

Base NodeClass Attributes

M

--

Inherited from the Base NodeClass. See 5.2.

ContainsNoLoops

M

Boolean

If set to TRUE this Attributeindicates that by following the Referencesin the context of the Viewthere are no loops, i.e. starting from a Node“A” contained in the Viewand following the forward Referencesin the context of the View Node“A” will not be reached again. It does not specify that there is only one path starting from the View Nodeto reach a Nodecontained in the View.

If set to FALSE this Attributeindicates that following Referencesin the context of the Viewmay lead to loops.

EventNotifier

M

EventNotifierType

The EventNotifier Attributeis used to indicate if the Nodecan be used to subscribe to Eventsor the read / write historic Events.

The EventNotifierType is defined in 8.59.

References

HierarchicalReferences

0..*

Top level Nodesin a Vieware referenced by hierarchical References(see 7.3).

HasProperty

0..*

HasProperty Referencesidentify the Propertiesof the View.

Standard Properties

NodeVersion

O

String

The NodeVersion Propertyis used to indicate the version of a Node.

The NodeVersion Propertyis updated each time a Referenceis added or deleted to the Nodethe Propertybelongs to. Attributevalue changes do not cause the NodeVersionto change. Clientsmay read the NodeVersion Propertyor subscribe to it to determine when the structure of a Nodehas changed.

ViewVersion

O

UInt32

The version number for the View. When Nodesare added to or removed from a View, the value of the ViewVersion Propertyis updated. Clientsmay detect changes to the composition of a Viewusing this Property. The value of the ViewVersion shall always be greater than 0.

The View NodeClassinherits the base Attributesfrom the Base NodeClassdefined in 5.2. It also defines two additional Attributes.

The mandatory ContainsNoLoops Attributeis set to FALSE if the Serveris not able to identify if the Viewcontains loops or not.

The mandatory EventNotifier Attribute identifies if the Viewcan be used to subscribe to Eventsthat either occur in the content of the Viewor as ModelChangeEvents(see 9.32) of the content of the Viewor to read / write the history of the Events. A Viewthat supports Eventsshall provide all Eventsthat occur in any Objectused as EventNotifierthat is part of the content of the View. In addition, it shall provide all ModelChangeEventsthat occur in the context of the View.

To avoid recursion, i.e. getting all Eventsof the Server, the Server Objectdefined in OPC 10000-5shall never be part of any Viewsince it provides all Eventsof the Server.

Viewsare defined by the Server. The browsing and querying Servicesdefined in OPC 10000-4expect the NodeIdof a View Nodeto provide these Servicesin the context of the View.

HasProperty Referencesare used to identify the Propertiesof a View. The Property NodeVersionis used to indicate the version of the View Node. The ViewVersion Propertyindicates the version of the content of the View. In contrast to the NodeVersion, the ViewVersion Propertyis updated even if Nodesnot directly referenced by the View Nodeare added to or deleted from the View. This Propertyis optional because it might not be possible for Serversto detect changes in the Viewcontents. Serversmay also generate a ModelChangeEvent,described in 9.32, if Nodesare added to or deleted from the View. There are no additional Propertiesdefined for Viewsin this document. Additional parts of this series of standards may define additional Propertiesfor Views.

Viewscan be the SourceNodeof any hierarchical Reference. They shall not be the SourceNodeof any NonHierarchical Reference.