B.3.5 Example 2
The second example illustrates receiving a list of disjoint Nodes and also illustrates that an array of results can be received.
Example 2: Get PersonType.LastName, AnimalType.Name where a person has a child or (a pet is of type cat and has a feeding schedule).
The NodeTypeDescription parameters used in the example are described in Table B.13.
| Type Definition Node | Include Subtypes | QueryDataDescription | ||
|---|---|---|---|---|
| Relative Path | Attribute | Index Range | ||
| PersonType | FALSE | “.12:LastName” | Value | N/A |
| AnimalType | TRUE | “.12:Name” | Value | N/A |
The corresponding ContentFilter is illustrated in Figure B.6.

Table B.14 describes the elements, operators and operands used in the example. It is worth noting that a CatType is a subtype of AnimalType.
| Element[] | Operator | Operand[0] | Operand[1] | Operand[2] | Operand[3] |
|---|---|---|---|---|---|
| 0 | Or | ElementOperand=1 | ElementOperand = 2 | ||
| 1 | RelatedTo | AttributeOperand = NodeId: PersonType, BrowsePath “.”, Attribute: NodeId | AttributeOperand = NodeId: PersonType, BrowsePath “.”, Attribute: NodeId | AttributeOperand = NodeId: HasChild, BrowsePath “.”, Attribute: NodeId | LiteralOperand = ‘1’ |
| 2 | RelatedTo | AttributeOperand = NodeId: CatType, BrowsePath “.”, Attribute: NodeId | AttributeOperand = NodeId: FeedingScheduleType, BrowsePath “.”, Attribute: NodeId | AttributeOperand = NodeId: HasSchedule, BrowsePath “.”, Attribute: NodeId | LiteralOperand = ‘1’ |
The results from this query would contain the QueryDataSets shown in Table B.15.
| NodeId | TypeDefinition NodeId | RelativePath | Value |
|---|---|---|---|
| 12:30 (Jfamily1) | PersonType | . 12:LastName | Jones |
| 12:42 (HFamily1) | PersonType | . 12:LastName | Hervey |
| 12:48 (HFamily2) | PersonType | . 12:LastName | Hervey |
| 12:70 (Cat1) | CatType | . 12:Name | Rosemary |
| 12:74 (Cat2) | CatType | . 12:Name | Basil |