Package net.sf.saxon.query

## Class QueryReader

- java.lang.Object
- - net.sf.saxon.query.QueryReader

-     public class QueryReader
      extends java.lang.Object

  This class contains static methods used to read a query as a byte stream, infer the encoding if necessary, and return the text of the query as a string; also methods to import functions and variables from one module into another, and check their consistency.

- - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `static java.lang.String` | `readEncoding​(java.io.InputStream is)` | Read an input stream non-destructively to determine the encoding from the Query Prolog
    `static java.lang.String` | `readInputStream​(java.io.InputStream is, java.lang.String encoding, java.util.function.IntPredicate nameChecker)` | Read a query from an InputStream.
    `static java.lang.String` | `readSourceQuery​(javax.xml.transform.stream.StreamSource ss, java.util.function.IntPredicate charChecker)` | Read a query module given a StreamSource

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

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

- - ### Method Detail

    - #### readSourceQuery

          public static java.lang.String readSourceQuery​(javax.xml.transform.stream.StreamSource ss,
                                                         java.util.function.IntPredicate charChecker)
                                                  throws XPathException

      Read a query module given a StreamSource
      Parameters:
        `ss` - the supplied StreamSource. This must contain a non-null systemID which defines the base URI of the query module, and either an InputStream or a Reader containing the query text. In the case of an InputStream the method attempts to infer the encoding; in the case of a Reader, this has already been done, and the encoding specified within the query itself is ignored.

        The method reads from the InputStream or Reader contained in the StreamSource up to the end of file unless a fatal error occurs. It does not close the InputStream or Reader; this is the caller's responsibility.

        `charChecker` - this checks XML characters against either the XML 1.0 or XML 1.1 rules
      Returns:
        the text of the query
      Throws:
        `XPathException`

    - #### readEncoding

          public static java.lang.String readEncoding​(java.io.InputStream is)
                                               throws XPathException

      Read an input stream non-destructively to determine the encoding from the Query Prolog
      Parameters:
        `is` - the input stream: this must satisfy the precondition is.markSupported() = true.
      Returns:
        the encoding to be used: defaults to UTF-8 if no encoding was specified explicitly in the query prolog
      Throws:
        `XPathException` - if the input stream cannot be read

    - #### readInputStream

          public static java.lang.String readInputStream​(java.io.InputStream is,
                                                         java.lang.String encoding,
                                                         java.util.function.IntPredicate nameChecker)
                                                  throws XPathException

      Read a query from an InputStream. The method checks that all characters are valid XML characters, and also performs normalization of line endings.
      Parameters:
        `is` - the input stream
        `encoding` - the encoding, or null if the encoding is unknown
        `nameChecker` - the predicate to be used for checking characters
      Returns:
        the content of the InputStream as a string
      Throws:
        `XPathException`