The ContentFilterstructure specified in 7.7defines a collection of elements that makes up filter criteria and contains different types of FilterOperands. The FilterOperand parameter is an extensible parameter. This parameter is defined in Table 129. The ExtensibleParametertype is defined in 7.17.

Table 129– FilterOperand parameter TypeIds

Symbolic Id

Description

Element

Specifies an index into the array of elements. This type is used to build a logic tree of sub-elements by linking the operand of one element to a sub-element.

Literal

Specifies a literal value.

Attribute

Specifies any Attributeof an Object orVariable Nodeusing a Nodein the type system and relative path constructed from ReferenceTypesand BrowseNames.

SimpleAttribute

Specifies any Attributeof an Object orVariable Nodeusing a TypeDefinitionand a relative path constructed from BrowseNames.

The ElementOperandprovides the linking to sub-elements within a ContentFilter. The link is in the form of an integer that is used to index into the array of elements contained in the ContentFilter. An index is considered valid if its value is greater than the element index it is part of and it does not Referencea non-existent element. Clientsshall construct filters in this way to avoid circular and invalid References. Serversshould protect against invalid indexes by verifying the index prior to using it.

Table 130defines the ElementOperandtype.

Table 130– ElementOperand

Name

Type

Description

ElementOperand

structure

ElementOperand value.

index

UInt32

Index into the element array.

Table 131defines the LiteralOperandtype.

Table 131– LiteralOperand

Name

Type

Description

LiteralOperand

structure

LiteralOperand value.

value

BaseDataType

A literal value.

Table 132defines the AttributeOperandtype.

Table 132– AttributeOperand

Name

Type

Description

AttributeOperand

structure

Attribute of a Nodein the AddressSpace.

nodeId

NodeId

NodeIdof a Nodefrom the type system.

alias

String

An optional parameter used to identify or refer to an alias. An alias is a symbolic name that can be used to alias this operand and use it in other locations in the filter structure.

browsePath

RelativePath

Browse path relative to the Nodeidentified by the nodeIdparameter. See 7.31for the definition of RelativePath.

attributeId

IntegerId

Id of the Attribute. This shall be a valid AttributeId. The IntegerId is defined in 7.19. The IntegerIds for the Attributes are defined in OPC 10000-6.

indexRange

NumericRange

This parameter is used to identify a single element of an array or a single range of indexes for an array. The first element is identified by index 0 (zero).

The NumericRangetype is defined in 7.27.

This parameter is not used if the specified Attributeis not an array. However, if the specified Attributeis an array and this parameter is not used, then all elements are to be included in the range. The parameter is null or empty if not used.

The SimpleAttributeOperandis a simplified form of the AttributeOperandand all of the rules that apply to the AttributeOperandalso apply to the SimpleAttributeOperand. The examples provided in B.1only use AttributeOperand, however, the AttributeOperandcan be replaced by a SimpleAttributeOperandwhenever all ReferenceTypesin the RelativePathare subtypes of HierarchicalReferencesand the targets are Objector Variable Nodes and an Alias is not required.

Table 133defines the SimpleAttributeOperandtype.

Table 133– SimpleAttributeOperand

Name

Type

Description

SimpleAttributeOperand

structure

Attribute of a Nodein the AddressSpace.

typeDefinitionId

NodeId

NodeIdof a TypeDefinitionNode.

This parameter restricts the operand to instances of the TypeDefinitionNodeor one of its subtypes.

If the SimpleAttributeOperandis used in an EventFilterand the typeDefinitionIdis BaseEventTypethe Servershall evaluate the browsePathwithout considering the typeDefinitionId.

browsePath []

QualifiedName

A relative path to a Node.

This parameter specifies a relative path using a list of BrowseNamesinstead of the RelativePathstructure used in the AttributeOperand. The list of BrowseNamesis equivalent to a RelativePaththat specifies forward references which are subtypes of the HierarchicalReferences ReferenceType.

All Nodesfollowed by the browsePathshall be of the NodeClass Objector Variable.

If this list is empty the Nodeis the instance of the TypeDefinition.

attributeId

IntegerId

Id of the Attribute. The IntegerId is defined in 7.19.

The Value Attributeshall be supported by all Servers. The support of other Attributesdepends on requirements set in Profiles or other parts of this specification.

indexRange

NumericRange

This parameter is used to identify a single element of an array, or a single range of indexes for an array. The first element is identified by index 0 (zero).

This parameter is ignored if the selected Node is not a Variable or the Value of a Variable is not an array.

All values in the array are used if this parameter is null or empty.

The NumericRangetype is defined in 7.27.