Validate the structure of a ContentFilter, returning a precise StatusCode (Good when valid).
The following OPC UA Part 4 - 7.7 rules are enforced over the elements that are reachable from the
starting element (index 0); elements that cannot be traced back to the starting element are
ignored (7.7.1):
each operator carries the number of operands defined by Table 118 / Table 119, otherwise
BadFilterOperandCountMismatch ("Extra operands for any operator shall result in an error");
each ElementOperand references an existing element (in-bounds), otherwise
BadFilterElementInvalid;
the reference graph is acyclic, otherwise BadFilterElementInvalid ("The evaluation shall not
introduce loops").
The traversal is iterative so that validating a deeply-nested filter cannot itself exhaust the
stack.
Validate the structure of a ContentFilter, returning a precise StatusCode (Good when valid).
The following OPC UA Part 4 - 7.7 rules are enforced over the elements that are reachable from the starting element (index 0); elements that cannot be traced back to the starting element are ignored (7.7.1):
BadFilterOperandCountMismatch("Extra operands for any operator shall result in an error");BadFilterElementInvalid;BadFilterElementInvalid("The evaluation shall not introduce loops").The traversal is iterative so that validating a deeply-nested filter cannot itself exhaust the stack.