org.apache.xml.utils

## Class StylesheetPIHandler

- java.lang.Object
- - org.xml.sax.helpers.DefaultHandler
  - - org.apache.xml.utils.StylesheetPIHandler

- All Implemented Interfaces:
    org.xml.sax.ContentHandler, org.xml.sax.DTDHandler, org.xml.sax.EntityResolver, org.xml.sax.ErrorHandler

      public class StylesheetPIHandler
      extends org.xml.sax.helpers.DefaultHandler

  Search for the xml-stylesheet processing instructions in an XML document.
  See Also:
    Associating Style Sheets with XML documents, Version 1.0

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `StylesheetPIHandler(java.lang.String baseID, java.lang.String media, java.lang.String title, java.lang.String charset)` Construct a StylesheetPIHandler instance that will search for xml-stylesheet PIs based on the given criteria.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `javax.xml.transform.Source` | `getAssociatedStylesheet()` Return the last stylesheet found that match the constraints.
    `java.lang.String` | `getBaseId()`
    `javax.xml.transform.URIResolver` | `getURIResolver()` Get the object that will be used to resolve URIs in href in xml-stylesheet processing instruction.
    `void` | `processingInstruction(java.lang.String target, java.lang.String data)` Handle the xml-stylesheet processing instruction.
    `void` | `setBaseId(java.lang.String baseId)` Added additional getter and setter methods for the Base Id to fix bugzilla bug 24187
    `void` | `setURIResolver(javax.xml.transform.URIResolver resolver)` Get the object that will be used to resolve URIs in href in xml-stylesheet processing instruction.
    `void` | `startElement(java.lang.String namespaceURI, java.lang.String localName, java.lang.String qName, org.xml.sax.Attributes atts)` The spec notes that "The xml-stylesheet processing instruction is allowed only in the prolog of an XML document

    - ### Methods inherited from class org.xml.sax.helpers.DefaultHandler

      `characters, endDocument, endElement, endPrefixMapping, error, fatalError, ignorableWhitespace, notationDecl, resolveEntity, setDocumentLocator, skippedEntity, startDocument, startPrefixMapping, unparsedEntityDecl, warning`

    - ### Methods inherited from class java.lang.Object

      `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### StylesheetPIHandler

          public StylesheetPIHandler(java.lang.String baseID,
                                     java.lang.String media,
                                     java.lang.String title,
                                     java.lang.String charset)

      Construct a StylesheetPIHandler instance that will search for xml-stylesheet PIs based on the given criteria.
      Parameters:
        `baseID` - The base ID of the XML document, needed to resolve relative IDs.
        `media` - The desired media criteria.
        `title` - The desired title criteria.
        `charset` - The desired character set criteria.

  - ### Method Detail

    - #### setURIResolver

          public void setURIResolver(javax.xml.transform.URIResolver resolver)

      Get the object that will be used to resolve URIs in href in xml-stylesheet processing instruction.
      Parameters:
        `resolver` - An object that implements the URIResolver interface, or null.

    - #### getURIResolver

          public javax.xml.transform.URIResolver getURIResolver()

      Get the object that will be used to resolve URIs in href in xml-stylesheet processing instruction.
      Returns:
        The URIResolver that was set with setURIResolver.

    - #### getAssociatedStylesheet

          public javax.xml.transform.Source getAssociatedStylesheet()

      Return the last stylesheet found that match the constraints.
      Returns:
        Source object that references the last stylesheet reference that matches the constraints.

    - #### processingInstruction

          public void processingInstruction(java.lang.String target,
                                            java.lang.String data)
                                     throws org.xml.sax.SAXException

      Handle the xml-stylesheet processing instruction.
      Specified by:
        `processingInstruction` in interface `org.xml.sax.ContentHandler`
      Overrides:
        `processingInstruction` in class `org.xml.sax.helpers.DefaultHandler`
      Parameters:
        `target` - The processing instruction target.
        `data` - The processing instruction data, or null if none is supplied.
      Throws:
        `org.xml.sax.SAXException` - Any SAX exception, possibly wrapping another exception.
      See Also:
        `ContentHandler.processingInstruction(java.lang.String, java.lang.String)`, Associating Style Sheets with XML documents, Version 1.0

    - #### startElement

          public void startElement(java.lang.String namespaceURI,
                                   java.lang.String localName,
                                   java.lang.String qName,
                                   org.xml.sax.Attributes atts)
                            throws org.xml.sax.SAXException

      The spec notes that "The xml-stylesheet processing instruction is allowed only in the prolog of an XML document.", so, at least for right now, I'm going to go ahead an throw a TransformerException in order to stop the parse.
      Specified by:
        `startElement` in interface `org.xml.sax.ContentHandler`
      Overrides:
        `startElement` in class `org.xml.sax.helpers.DefaultHandler`
      Parameters:
        `namespaceURI` - The Namespace URI, or an empty string.
        `localName` - The local name (without prefix), or empty string if not namespace processing.
        `qName` - The qualified name (with prefix).
        `atts` - The specified or defaulted attributes.
      Throws:
        `StopParseException` - since there can be no valid xml-stylesheet processing instructions past the first element.
        `org.xml.sax.SAXException`

    - #### setBaseId

          public void setBaseId(java.lang.String baseId)

      Added additional getter and setter methods for the Base Id to fix bugzilla bug 24187

    - #### getBaseId

          public java.lang.String getBaseId()

Copyright © 2023 Apache XML Project. All Rights Reserved.