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 NodeName currentElement
      • escapeURIAttributes

        protected boolean escapeURIAttributes
    • Constructor Detail

      • HTMLURIEscaper

        public HTMLURIEscaper​(Receiver nextReceiver)
    • Method Detail

      • isUrlAttribute

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

        public void startElement​(NodeName nameCode,
                                 SchemaType 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 - if an error occurs
      • attribute

        public void attribute​(NodeName nameCode,
                              SimpleType 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
        value - the string value of the attribute
        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 - if an error occurs
      • escapeURL

        public static java.lang.CharSequence escapeURL​(java.lang.CharSequence url,
                                                       boolean normalize,
                                                       Configuration config)
                                                throws XPathException
        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
        Throws:
        XPathException