Package com.saxonica.xqj.pull

## Class PullToStax

- java.lang.Object
- - com.saxonica.xqj.pull.PullToStax

- All Implemented Interfaces:
    `javax.xml.stream.XMLStreamConstants`, `javax.xml.stream.XMLStreamReader`

      public class PullToStax
      extends java.lang.Object
      implements javax.xml.stream.XMLStreamReader

  This class bridges PullProvider events to XMLStreamReader (Stax) events. That is, it acts as an XMLStreamReader, fetching the underlying data from a PullProvider.

  A PullProvider may provide access to any XDM sequence, whereas an XMLStreamReader always reads a document. The conversion of a sequence to a document follows the rules for "normalizing" a sequence in the Serialization specification: for example, atomic values are converted into text nodes, with adjacent atomic values being space-separated.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class | Description
    --- | --- | ---
    `static class` | `PullToStax.SourceStreamLocation` | Bridge a SAX SourceLocator to a javax.xml.stream.Location

  - ### Field Summary

    - ### Fields inherited from interface javax.xml.stream.XMLStreamConstants

      `ATTRIBUTE, CDATA, CHARACTERS, COMMENT, DTD, END_DOCUMENT, END_ELEMENT, ENTITY_DECLARATION, ENTITY_REFERENCE, NAMESPACE, NOTATION_DECLARATION, PROCESSING_INSTRUCTION, SPACE, START_DOCUMENT, START_ELEMENT`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `PullToStax​(PullProvider provider)` | Create a PullToStax instance, which wraps a Saxon PullProvider as a Stax XMLStreamReader

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `close()` |
    `int` | `getAttributeCount()` |
    `java.lang.String` | `getAttributeLocalName​(int i)` |
    `javax.xml.namespace.QName` | `getAttributeName​(int i)` |
    `java.lang.String` | `getAttributeNamespace​(int i)` |
    `java.lang.String` | `getAttributePrefix​(int i)` |
    `java.lang.String` | `getAttributeType​(int i)` |
    `java.lang.String` | `getAttributeValue​(int i)` |
    `java.lang.String` | `getAttributeValue​(java.lang.String uri, java.lang.String local)` |
    `java.lang.String` | `getCharacterEncodingScheme()` |
    `java.lang.String` | `getElementText()` |
    `java.lang.String` | `getEncoding()` |
    `int` | `getEventType()` |
    `java.lang.String` | `getLocalName()` |
    `javax.xml.stream.Location` | `getLocation()` |
    `javax.xml.namespace.QName` | `getName()` |
    `javax.xml.namespace.NamespaceContext` | `getNamespaceContext()` |
    `int` | `getNamespaceCount()` | Return the number of namespaces declared on this element.
    `java.lang.String` | `getNamespacePrefix​(int i)` |
    `java.lang.String` | `getNamespaceURI()` |
    `java.lang.String` | `getNamespaceURI​(int i)` |
    `java.lang.String` | `getNamespaceURI​(java.lang.String s)` |
    `java.lang.String` | `getPIData()` |
    `java.lang.String` | `getPITarget()` |
    `java.lang.String` | `getPrefix()` |
    `java.lang.Object` | `getProperty​(java.lang.String s)` |
    `java.lang.String` | `getText()` |
    `char[]` | `getTextCharacters()` |
    `int` | `getTextCharacters​(int sourceStart, char[] target, int targetStart, int length)` |
    `int` | `getTextLength()` |
    `int` | `getTextStart()` |
    `java.lang.String` | `getVersion()` |
    `static javax.xml.stream.XMLStreamReader` | `getXMLStreamReader​(NodeInfo node)` | Create an XMLStreamReader that reads the contents of a tree rooted at a document or element node
    `boolean` | `hasName()` |
    `boolean` | `hasNext()` |
    `boolean` | `hasText()` |
    `boolean` | `isAttributeSpecified​(int i)` |
    `boolean` | `isCharacters()` |
    `boolean` | `isEndElement()` |
    `boolean` | `isStandalone()` |
    `boolean` | `isStartElement()` |
    `boolean` | `isWhiteSpace()` |
    `int` | `next()` |
    `int` | `nextTag()` |
    `void` | `require​(int event, java.lang.String uri, java.lang.String local)` |
    `boolean` | `standaloneSet()` |

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### PullToStax

          public PullToStax​(PullProvider provider)

      Create a PullToStax instance, which wraps a Saxon PullProvider as a Stax XMLStreamReader
      Parameters:
        `provider` - the Saxon PullProvider from which the events will be read

  - ### Method Detail

    - #### getXMLStreamReader

          public static javax.xml.stream.XMLStreamReader getXMLStreamReader​(NodeInfo node)

      Create an XMLStreamReader that reads the contents of a tree rooted at a document or element node
      Parameters:
        `node` - the node to be read. This must be a document or element node
      Throws:
        `java.lang.IllegalArgumentException` - if the node is not a document or element node

    - #### getAttributeCount

          public int getAttributeCount()

      Specified by:
        `getAttributeCount` in interface `javax.xml.stream.XMLStreamReader`

    - #### isAttributeSpecified

          public boolean isAttributeSpecified​(int i)

      Specified by:
        `isAttributeSpecified` in interface `javax.xml.stream.XMLStreamReader`

    - #### getAttributeName

          public javax.xml.namespace.QName getAttributeName​(int i)

      Specified by:
        `getAttributeName` in interface `javax.xml.stream.XMLStreamReader`

    - #### getAttributeLocalName

          public java.lang.String getAttributeLocalName​(int i)

      Specified by:
        `getAttributeLocalName` in interface `javax.xml.stream.XMLStreamReader`

    - #### getAttributeNamespace

          public java.lang.String getAttributeNamespace​(int i)

      Specified by:
        `getAttributeNamespace` in interface `javax.xml.stream.XMLStreamReader`

    - #### getAttributePrefix

          public java.lang.String getAttributePrefix​(int i)

      Specified by:
        `getAttributePrefix` in interface `javax.xml.stream.XMLStreamReader`

    - #### getAttributeType

          public java.lang.String getAttributeType​(int i)

      Specified by:
        `getAttributeType` in interface `javax.xml.stream.XMLStreamReader`

    - #### getAttributeValue

          public java.lang.String getAttributeValue​(int i)

      Specified by:
        `getAttributeValue` in interface `javax.xml.stream.XMLStreamReader`

    - #### getAttributeValue

          public java.lang.String getAttributeValue​(java.lang.String uri,
                                                    java.lang.String local)

      Specified by:
        `getAttributeValue` in interface `javax.xml.stream.XMLStreamReader`

    - #### getEventType

          public int getEventType()

      Specified by:
        `getEventType` in interface `javax.xml.stream.XMLStreamReader`

    - #### getNamespaceCount

          public int getNamespaceCount()

      Return the number of namespaces declared on this element.
      Specified by:
        `getNamespaceCount` in interface `javax.xml.stream.XMLStreamReader`
      Returns:
        the number of in-scope namespaces

    - #### getText

          public java.lang.String getText()

      Specified by:
        `getText` in interface `javax.xml.stream.XMLStreamReader`

    - #### getTextLength

          public int getTextLength()

      Specified by:
        `getTextLength` in interface `javax.xml.stream.XMLStreamReader`

    - #### getTextStart

          public int getTextStart()

      Specified by:
        `getTextStart` in interface `javax.xml.stream.XMLStreamReader`

    - #### getTextCharacters

          public char[] getTextCharacters()

      Specified by:
        `getTextCharacters` in interface `javax.xml.stream.XMLStreamReader`

    - #### getTextCharacters

          public int getTextCharacters​(int sourceStart,
                                       char[] target,
                                       int targetStart,
                                       int length)
                                throws javax.xml.stream.XMLStreamException

      Specified by:
        `getTextCharacters` in interface `javax.xml.stream.XMLStreamReader`
      Throws:
        `javax.xml.stream.XMLStreamException`

    - #### next

          public int next()
                   throws javax.xml.stream.XMLStreamException

      Specified by:
        `next` in interface `javax.xml.stream.XMLStreamReader`
      Throws:
        `javax.xml.stream.XMLStreamException`

    - #### nextTag

          public int nextTag()
                      throws javax.xml.stream.XMLStreamException

      Specified by:
        `nextTag` in interface `javax.xml.stream.XMLStreamReader`
      Throws:
        `javax.xml.stream.XMLStreamException`

    - #### close

          public void close()
                     throws javax.xml.stream.XMLStreamException

      Specified by:
        `close` in interface `javax.xml.stream.XMLStreamReader`
      Throws:
        `javax.xml.stream.XMLStreamException`

    - #### hasName

          public boolean hasName()

      Specified by:
        `hasName` in interface `javax.xml.stream.XMLStreamReader`

    - #### hasNext

          public boolean hasNext()
                          throws javax.xml.stream.XMLStreamException

      Specified by:
        `hasNext` in interface `javax.xml.stream.XMLStreamReader`
      Throws:
        `javax.xml.stream.XMLStreamException`

    - #### hasText

          public boolean hasText()

      Specified by:
        `hasText` in interface `javax.xml.stream.XMLStreamReader`

    - #### isCharacters

          public boolean isCharacters()

      Specified by:
        `isCharacters` in interface `javax.xml.stream.XMLStreamReader`

    - #### isEndElement

          public boolean isEndElement()

      Specified by:
        `isEndElement` in interface `javax.xml.stream.XMLStreamReader`

    - #### isStandalone

          public boolean isStandalone()

      Specified by:
        `isStandalone` in interface `javax.xml.stream.XMLStreamReader`

    - #### isStartElement

          public boolean isStartElement()

      Specified by:
        `isStartElement` in interface `javax.xml.stream.XMLStreamReader`

    - #### isWhiteSpace

          public boolean isWhiteSpace()

      Specified by:
        `isWhiteSpace` in interface `javax.xml.stream.XMLStreamReader`

    - #### standaloneSet

          public boolean standaloneSet()

      Specified by:
        `standaloneSet` in interface `javax.xml.stream.XMLStreamReader`

    - #### getCharacterEncodingScheme

          public java.lang.String getCharacterEncodingScheme()

      Specified by:
        `getCharacterEncodingScheme` in interface `javax.xml.stream.XMLStreamReader`

    - #### getElementText

          public java.lang.String getElementText()
                                          throws javax.xml.stream.XMLStreamException

      Specified by:
        `getElementText` in interface `javax.xml.stream.XMLStreamReader`
      Throws:
        `javax.xml.stream.XMLStreamException`

    - #### getEncoding

          public java.lang.String getEncoding()

      Specified by:
        `getEncoding` in interface `javax.xml.stream.XMLStreamReader`

    - #### getLocalName

          public java.lang.String getLocalName()

      Specified by:
        `getLocalName` in interface `javax.xml.stream.XMLStreamReader`

    - #### getNamespaceURI

          public java.lang.String getNamespaceURI()

      Specified by:
        `getNamespaceURI` in interface `javax.xml.stream.XMLStreamReader`

    - #### getPIData

          public java.lang.String getPIData()

      Specified by:
        `getPIData` in interface `javax.xml.stream.XMLStreamReader`

    - #### getPITarget

          public java.lang.String getPITarget()

      Specified by:
        `getPITarget` in interface `javax.xml.stream.XMLStreamReader`

    - #### getPrefix

          public java.lang.String getPrefix()

      Specified by:
        `getPrefix` in interface `javax.xml.stream.XMLStreamReader`

    - #### getVersion

          public java.lang.String getVersion()

      Specified by:
        `getVersion` in interface `javax.xml.stream.XMLStreamReader`

    - #### getNamespacePrefix

          public java.lang.String getNamespacePrefix​(int i)

      Specified by:
        `getNamespacePrefix` in interface `javax.xml.stream.XMLStreamReader`

    - #### getNamespaceURI

          public java.lang.String getNamespaceURI​(int i)

      Specified by:
        `getNamespaceURI` in interface `javax.xml.stream.XMLStreamReader`

    - #### getNamespaceContext

          public javax.xml.namespace.NamespaceContext getNamespaceContext()

      Specified by:
        `getNamespaceContext` in interface `javax.xml.stream.XMLStreamReader`

    - #### getName

          public javax.xml.namespace.QName getName()

      Specified by:
        `getName` in interface `javax.xml.stream.XMLStreamReader`

    - #### getLocation

          public javax.xml.stream.Location getLocation()

      Specified by:
        `getLocation` in interface `javax.xml.stream.XMLStreamReader`

    - #### getProperty

          public java.lang.Object getProperty​(java.lang.String s)
                                       throws java.lang.IllegalArgumentException

      Specified by:
        `getProperty` in interface `javax.xml.stream.XMLStreamReader`
      Throws:
        `java.lang.IllegalArgumentException`

    - #### require

          public void require​(int event,
                              java.lang.String uri,
                              java.lang.String local)
                       throws javax.xml.stream.XMLStreamException

      Specified by:
        `require` in interface `javax.xml.stream.XMLStreamReader`
      Throws:
        `javax.xml.stream.XMLStreamException`

    - #### getNamespaceURI

          public java.lang.String getNamespaceURI​(java.lang.String s)

      Specified by:
        `getNamespaceURI` in interface `javax.xml.stream.XMLStreamReader`