Class AbstractResourceCollection

    • Field Detail

      • collectionURI

        protected java.lang.String collectionURI
      • noExceptions

        protected boolean noExceptions
    • Constructor Detail

      • AbstractResourceCollection

        public AbstractResourceCollection​(Configuration config)
        Create a resource collection
        Parameters:
        config - the Saxon configuration
    • Method Detail

      • checkNotNull

        public static void checkNotNull​(java.lang.String collectionURI,
                                        XPathContext context)
                                 throws XPathException
        If the collectionURI is null, report that no default collection exists
        Parameters:
        collectionURI - the collection URI to be tested
        context - XPath evaluation context
        Throws:
        XPathException - if the collectionURI is null
      • getCollectionURI

        public java.lang.String getCollectionURI()
        Description copied from interface: ResourceCollection
        Get the URI of the collection
        Specified by:
        getCollectionURI in interface ResourceCollection
        Returns:
        The URI as passed to the fn:collection() or fn:uri-collection() function, resolved if it is relative against the static base URI. If the collection() or uri-collection() function was called with no arguments (to get the "default collection") this will be the URI of the default collection registered with the Configuration.
      • registerContentType

        public void registerContentType​(java.lang.String contentType,
                                        ResourceFactory factory)
        Associate a media type with a resource factory. Since 9.7.0.6 this registers the content type with the configuration, making the register of content types more accessible to applications.
        Parameters:
        contentType - a media type or MIME type, for example application/xsd+xml
        factory - a ResourceFactory used to parse (or otherwise process) resources of that type
      • optionsFromQueryParameters

        protected ParseOptions optionsFromQueryParameters​(URIQueryParameters params,
                                                          XPathContext context)
        Analyze URI query parameters and convert them to a set of parser options
        Parameters:
        params - the query parameters extracted from the URI
        context - the XPath evaluation context
        Returns:
        a set of options to control document parsing
      • guessContentTypeFromName

        protected java.lang.String guessContentTypeFromName​(java.lang.String resourceURI)
        Attempt to establish the media type of a resource, given the resource URI. This makes use of URLConnection#guessContentTypeFromName, and failing that the mapping from file extensions to media types held in the Saxon Configuration
        Parameters:
        resourceURI - the resource URI
        Returns:
        the media type if it can be gleaned, otherwise null.
      • guessContentTypeFromContent

        protected java.lang.String guessContentTypeFromContent​(java.io.InputStream stream)
        Attempt to establish the media type of a resource, given the actual content. This makes use of URLConnection#guessContentTypeFromStream
        Parameters:
        stream - the input stream. This should be positioned at the start; the reading position is not affected by the call.
        Returns:
        the media type if it can be gleaned, otherwise null.
      • makeResource

        public Resource makeResource​(XPathContext context,
                                     AbstractResourceCollection.InputDetails details)
                              throws XPathException
        Internal method to make a resource for a single entry in the ZIP or JAR file. This involves making decisions about the type of resource. This method can be overridden in a user-defined subclass.
        Parameters:
        context - The Saxon configuration
        details - Details of the input.
        Returns:
        a newly created Resource representing the content of this entry in the ZIP or JAR file
        Throws:
        XPathException
      • makeTypedResource

        public Resource makeTypedResource​(XPathContext context,
                                          Resource basicResource)
                                   throws XPathException
        Given a resource whose type may be unknown, create a Resource of a specific type, for example an XML or JSON resource
        Parameters:
        context - the evaluation context
        basicResource - the resource, whose type may be unknown
        Returns:
        a Resource of a specific type
        Throws:
        XPathException - if a failure occurs (for example an XML or JSON parsing failure)
      • makeResource

        public Resource makeResource​(XPathContext context,
                                     java.lang.String resourceURI)
                              throws XPathException
        Default method to make a resource, given a resource URI
        Parameters:
        resourceURI - the resource URI
        Returns:
        the corresponding resource
        Throws:
        XPathException
      • stripWhitespace

        public boolean stripWhitespace​(SpaceStrippingRule rules)
        Supply information about the whitespace stripping rules that apply to this collection. This method will only be called when the collection() function is invoked from XSLT.
        Parameters:
        rules - the space-stripping rules that apply to this collection, derived from the xsl:strip-space and xsl:preserve-space declarations in the stylesheet package containing the call to the collection() function.
        Returns:
        true if the collection finder intends to take responsibility for whitespace stripping according to these rules; false if it wishes Saxon itself to post-process any returned XML documents to strip whitespace. Returning true may either indicate that the collection finder will strip whitespace before returning a document, or it may indicate that it does not wish the space stripping rules to be applied. The default (returned by this method if not overridden) is false.