## com.saxonica.schema
Class UnionSelection

    java.lang.Object
      com.saxonica.schema.UnionSelection

All Implemented Interfaces:
  Selection

    public class UnionSelection

extends Object
implements Selection

A union selection is a selection consisting of several alternatives separated by "|"

Constructor Summary
`UnionSelection(Selection p1, Selection p2)`

Method Summary
`boolean` `canMatchAttributes()` Determine whether the selection can match attribute nodes
`boolean` `canMatchElementContent()` Determine whether the selection can match element content
`ItemType` `getItemType(TypeHierarchy th)` Return the type of the nodes selected by this selection
`boolean` `matchesAttribute(int fingerprint)` Determine whether a given attribute matches the Selection
`boolean` `matchesElement(int[] stack, int length, int contextPosition)` Determine whether the selector matches a given element.
`String` `typeCheck(StaticContext env, ItemType contextItemType)` Check that the selection makes sense in the context of a given ItemType.

Methods inherited from class java.lang.Object
`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### UnionSelection

    public UnionSelection(Selection p1,
                          Selection p2)

Method Detail

### matchesElement

    public boolean matchesElement(int[] stack,
                                  int length,
                                  int contextPosition)

  Determine whether the selector matches a given element. The element is identified by an array of integers representing the fingerprints of the names of this element and each of its ancestors, in document order (i.e., root element first, matched element last).

  Specified by:
    `matchesElement` in interface `Selection`
  Parameters:
    `stack` - the array of name fingerprints
    `length` - the effective length of the array; any items beyond this position are ignored
    `contextPosition` - the position in this array of the context element for the selection.
  Returns:
    true if the element matches

### matchesAttribute

    public boolean matchesAttribute(int fingerprint)
                             throws ValidationException

  Determine whether a given attribute matches the Selection

  Specified by:
    `matchesAttribute` in interface `Selection`
  Returns:
    true if it matches, false if it does not match
  Throws:
    `ValidationException` - if there is more than one attribute that matches

### canMatchAttributes

    public boolean canMatchAttributes()

  Determine whether the selection can match attribute nodes

  Specified by:
    `canMatchAttributes` in interface `Selection`

### canMatchElementContent

    public boolean canMatchElementContent()

  Determine whether the selection can match element content

  Specified by:
    `canMatchElementContent` in interface `Selection`

### typeCheck

    public String typeCheck(StaticContext env,
                            ItemType contextItemType)

  Check that the selection makes sense in the context of a given ItemType. Return null if the selection is OK, otherwise an error message

  Specified by:
    `typeCheck` in interface `Selection`

### getItemType

    public ItemType getItemType(TypeHierarchy th)

  Return the type of the nodes selected by this selection

  Specified by:
    `getItemType` in interface `Selection`

Copyright (C) Michael H. Kay. All rights reserved.