## net.sf.saxon.query
Class QueryReader

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

    public class QueryReader

extends 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
`static String` `readEncoding(InputStream is)` Read an input stream non-destructively to determine the encoding from the Query Prolog
`static String` `readInputStream(InputStream is, String encoding, NameChecker nameChecker)` Read a query from an InputStream.
`static String` `readSourceQuery(StreamSource ss, NameChecker nameChecker)` Read a query module given a StreamSource

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

Method Detail

### readSourceQuery

    public static String readSourceQuery(StreamSource ss,
                                         NameChecker nameChecker)
                                  throws StaticError

  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.
  Throws:
    `StaticError`

### readEncoding

    public static String readEncoding(InputStream is)
                               throws StaticError

  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:
    `StaticError` - if the input stream cannot be read

### readInputStream

    public static String readInputStream(InputStream is,
                                         String encoding,
                                         NameChecker nameChecker)
                                  throws StaticError

  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 nameChecker to be used for checking characters
  Returns:
    the content of the InputStream as a string
  Throws:
    `StaticError`

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