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 void importModuleContents(StaticQueryContext importedModule, StaticQueryContext thisModule)
          Check the types used in the functions and variables in an imported module
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

importModuleContents

public static void importModuleContents(StaticQueryContext importedModule,
                                        StaticQueryContext thisModule)
                                 throws StaticError
Check the types used in the functions and variables in an imported module

Parameters:
importedModule - the imported module
thisModule - thus module
Throws:
StaticError