Class ResourceLoader

java.lang.Object
net.sf.saxon.resource.ResourceLoader

public class ResourceLoader extends Object
The class provides a static method for loading resources from a URL. This method follows HTTP 301 and 302 redirects.
  • Field Details

    • MAX_REDIRECTS

      public static int MAX_REDIRECTS
      The maximum number of redirects to follow before throwing an IOException. If you allow the underlying Java URL class to follow redirects, it gives up after 20 hops.
  • Constructor Details

    • ResourceLoader

      public ResourceLoader()
  • Method Details

    • urlConnection

      public static URLConnection urlConnection(URL url) throws IOException
      Open a URLConnection to the resource identified by the URI. For HTTP URIs, this method will follow up to MAX_REDIRECTS redirects or until it detects a loop; the connection returned in this case is to the first resource that did not return a 301 or 302 response code.
      Parameters:
      url - The URL to retrieve.
      Returns:
      An InputStream for the resource content.
      Throws:
      IOException - If more than MAX_REDIRECTS are occur or if a loop is detected.
    • urlStream

      public static InputStream urlStream(Configuration config, String url) throws IOException
      Open a stream to retrieve the content identified by the URI. If the URI is a classpath: URI, then it will be retrieved with the configuration's dynamic loader. For HTTP URIs, this method will follow up to MAX_REDIRECTS redirects or until it detects a loop. This method automatically accepts and decompresses gzip encoded responses.
      Parameters:
      config - The current configuration.
      url - The URL to retrieve.
      Returns:
      An InputStream for the resource content.
      Throws:
      IOException - If more than MAX_REDIRECTS are occur or if a loop is detected.
    • typedStreamSource

      public static StreamSource typedStreamSource(Configuration config, String url) throws IOException
      Throws:
      IOException
    • urlReader

      public static Reader urlReader(Configuration config, String url, String requestedEncoding) throws IOException
      Open a reader to retrieve the content identified by the URI. This handles HTTP redirects in the same way as urlStream(net.sf.saxon.Configuration, java.lang.String), but then it also wraps the stream in a Reader, using the logic prescribed for the fn:unparsed-text function.
      Parameters:
      url - The URL to retrieve.
      requestedEncoding - The requested encoding. This is used only as a fallback, following the rules of the fn:unparsed-text specification
      Returns:
      A Reader for the resource content.
      Throws:
      IOException - If more than MAX_REDIRECTS are occur or if a loop is detected.
    • getReaderFromStream

      public static BufferedReader getReaderFromStream(InputStream inputStream, String resourceEncoding) throws UnsupportedEncodingException
      Get a reader corresponding to a binary input stream and an encoding. The mapping is such that any encoding errors that are detected lead to a fatal error, rather than being repaired or ignored
      Parameters:
      inputStream - the input stream. Non-null.
      resourceEncoding - the encoding. Non-null
      Returns:
      a corresponding reader.
      Throws:
      UnsupportedEncodingException - if there's a problem with the encoding