Class HTMLURIEscaper

  • All Implemented Interfaces:
    javax.xml.transform.Result, Receiver
    Direct Known Subclasses:
    XHTMLURIEscaper

    public class HTMLURIEscaper
    extends ProxyReceiver
    This class is used as a filter on the serialization pipeline; it performs the function of escaping URI-valued attributes in HTML
    Author:
    Michael H. Kay
    • Field Detail

      • currentElement

        protected int currentElement
      • escapeURIAttributes

        protected boolean escapeURIAttributes
    • Constructor Detail

      • HTMLURIEscaper

        public HTMLURIEscaper()
    • Method Detail

      • isUrlAttribute

        public boolean isUrlAttribute​(int element,
                                      int attribute)
      • startElement

        public void startElement​(int nameCode,
                                 int typeCode,
                                 int locationId,
                                 int properties)
                          throws XPathException
        Notify the start of an element
        Specified by:
        startElement in interface Receiver
        Overrides:
        startElement in class ProxyReceiver
        Parameters:
        nameCode - integer code identifying the name of the element within the name pool.
        typeCode - integer code identifying the element's type within the name pool.
        properties - properties of the element node
        locationId - an integer which can be interpreted using a LocationProvider to return information such as line number and system ID. If no location information is available, the value zero is supplied.
        Throws:
        XPathException
      • attribute

        public void attribute​(int nameCode,
                              int typeCode,
                              java.lang.CharSequence value,
                              int locationId,
                              int properties)
                       throws XPathException
        Notify an attribute. Attributes are notified after the startElement event, and before any children. Namespaces and attributes may be intermingled.
        Specified by:
        attribute in interface Receiver
        Overrides:
        attribute in class ProxyReceiver
        Parameters:
        nameCode - The name of the attribute, as held in the name pool
        typeCode - The type of the attribute, as held in the name pool
        properties - Bit significant value. The following bits are defined:
        DISABLE_ESCAPING
        Disable escaping for this attribute
        NO_SPECIAL_CHARACTERS
        Attribute value contains no special characters
        locationId - an integer which can be interpreted using a LocationProvider to return information such as line number and system ID. If no location information is available, the value zero is supplied.
        Throws:
        XPathException
      • escapeURL

        public static java.lang.CharSequence escapeURL​(java.lang.CharSequence url,
                                                       boolean normalize)
        Escape a URI according to the HTML rules: that is, a non-ASCII character (specifically, a character outside the range 32 - 126) is replaced by the %HH encoding of the octets in its UTF-8 representation
        Parameters:
        url - the URI to be escaped
        normalize -
        Returns:
        the URI after escaping non-ASCII characters