Class StandardUnparsedTextResolver

  • All Implemented Interfaces:
    UnparsedTextURIResolver

    public class StandardUnparsedTextResolver
    extends Object
    implements UnparsedTextURIResolver
    Default implementation of the UnparsedTextURIResolver, used if no other implementation is nominated to the Configuration. This implementation * handles anything that the java URL class will handle, plus the classpath * URI scheme defined in the Spring framework, and the data URI scheme defined in * RFC 2397.
    • Constructor Detail

      • StandardUnparsedTextResolver

        public StandardUnparsedTextResolver()
    • Method Detail

      • setDebugging

        public void setDebugging​(boolean debug)
        Set debugging on or off. In debugging mode, information is written to System.err to trace the process of deducing an encoding.
        Parameters:
        debug - set to true to enable debugging
      • resolve

        public Reader resolve​(URI absoluteURI,
                              String encoding,
                              Configuration config)
                       throws XPathException
        Resolve the URI passed to the XSLT unparsed-text() function, after resolving against the base URI.
        Specified by:
        resolve in interface UnparsedTextURIResolver
        Parameters:
        absoluteURI - the absolute URI obtained by resolving the supplied URI against the base URI
        encoding - the encoding requested in the call of unparsed-text(), if any. Otherwise null.
        config - The configuration. Provided in case the URI resolver needs it.
        Returns:
        a Reader, which Saxon will use to read the unparsed text. After the text has been read, the close() method of the Reader will be called.
        Throws:
        XPathException - if any failure occurs
        Since:
        8.9
      • inferStreamEncoding

        public static String inferStreamEncoding​(InputStream is,
                                                 Logger err)
                                          throws IOException
        Try to detect the encoding from the start of the input stream
        Parameters:
        is - the input stream
        err - logger to be used for diagnostics, or null
        Returns:
        the inferred encoding, defaulting to UTF-8
        Throws:
        IOException - if it isn't possible to mark the current position on the input stream and read ahead