Class PIGrabber

  • All Implemented Interfaces:
    javax.xml.transform.Result, Receiver

    public class PIGrabber
    extends ProxyReceiver
    The PIGrabber class is a ProxyReceiver that looks for xml-stylesheet processing instructions and tests whether they match specified criteria; for those that do, it creates a Source object referring to the relevant stylesheet
    • Constructor Detail

      • PIGrabber

        public PIGrabber​(Receiver next)
    • Method Detail

      • setCriteria

        public void setCriteria​(java.lang.String media,
                                java.lang.String title)
        Define the matching criteria
        media - the required media. Note that Saxon does not implement the complex CSS3-based syntax for media queries. By default, the media value is simply ignored. An algorithm for comparing the requested media with the declared media can be defined using the method Configuration.setMediaQueryEvaluator(Comparator).
        title - the required title
      • setBaseURI

        public void setBaseURI​(java.lang.String uri)
        Set the base URI
        uri - the base URI
      • setResourceResolver

        public void setResourceResolver​(ResourceResolver resolver)
        Set the URI resolver to be used for the href attribute
        resolver - the URI resolver
      • startElement

        public void startElement​(NodeName elemName,
                                 SchemaType type,
                                 AttributeMap attributes,
                                 NamespaceMap namespaces,
                                 Location location,
                                 int properties)
                          throws XPathException
        Abort the parse when the first start element tag is found
        Specified by:
        startElement in interface Receiver
        startElement in class ProxyReceiver
        elemName - the name of the element.
        type - the type annotation of the element.
        attributes - the attributes of this element
        namespaces - the in-scope namespaces of this element: generally this is all the in-scope namespaces, without relying on inheriting namespaces from parent elements
        location - an object providing information about the module, line, and column where the node originated
        properties - bit-significant properties of the element node. If there are no relevant properties, zero is supplied. The definitions of the bits are in class ReceiverOption
        XPathException - if an error occurs
      • isTerminated

        public boolean isTerminated()
        Determine whether the parse terminated because the first start element tag was found
        true if the parse was terminated when the document element was encountered (as distinct from being terminated because of some exception condition, for example a parse error)
      • processingInstruction

        public void processingInstruction​(java.lang.String target,
                                          UnicodeString data,
                                          Location locationId,
                                          int properties)
                                   throws XPathException
        Handle xml-stylesheet PI
        Specified by:
        processingInstruction in interface Receiver
        processingInstruction in class ProxyReceiver
        target - The PI name. This must be a legal name (it will not be checked).
        data - The data portion of the processing instruction
        locationId - provides information such as line number and system ID.
        properties - Additional information about the PI.
        XPathException - if an error occurs
      • getAssociatedStylesheets

        public javax.xml.transform.Source[] getAssociatedStylesheets()
                                                              throws javax.xml.transform.TransformerException
        Return list of stylesheets that matched, as an array of Source objects
        null if there were no matching stylesheets.
        XPathException - if a URI cannot be resolved