net.sf.saxon.query
Class QueryReader

java.lang.Object
  extended bynet.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
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, NameChecker nameChecker)
          Read a query from an InputStream.
static java.lang.String readSourceQuery(javax.xml.transform.stream.StreamSource ss, NameChecker nameChecker)
          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,
                                               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 java.lang.String readEncoding(java.io.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 java.lang.String readInputStream(java.io.InputStream is,
                                               java.lang.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