Class 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
      (package private) static void checkSchemaNamespaceImported​(StaticQueryContext env, int fingerprint, Declaration declaration)
      Check that the namespace of a given name is the namespace of an imported schema
      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
      • checkSchemaNamespaceImported

        static void checkSchemaNamespaceImported​(StaticQueryContext env,
                                                 int fingerprint,
                                                 Declaration declaration)
                                          throws StaticError
        Check that the namespace of a given name is the namespace of an imported schema
        Throws:
        StaticError