net.sf.saxon.serialize

## Class HTMLURIEscaper

- java.lang.Object
- - net.sf.saxon.event.SequenceReceiver
  - - net.sf.saxon.event.ProxyReceiver
    - - net.sf.saxon.serialize.HTMLURIEscaper

- All Implemented Interfaces:
    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 Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected NodeName` | `currentElement`
    `protected boolean` | `escapeURIAttributes`
    `protected NamePool` | `pool`

    - ### Fields inherited from class net.sf.saxon.event.ProxyReceiver

      `nextReceiver`

    - ### Fields inherited from class net.sf.saxon.event.SequenceReceiver

      `pipelineConfiguration, previousAtomic, systemId`

    - ### Fields inherited from interface javax.xml.transform.Result

      `PI_DISABLE_OUTPUT_ESCAPING, PI_ENABLE_OUTPUT_ESCAPING`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `HTMLURIEscaper(Receiver nextReceiver)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `attribute(NodeName nameCode, SimpleType typeCode, CharSequence value, int locationId, int properties)` Notify an attribute.
    `static CharSequence` | `escapeURL(CharSequence url, boolean normalize, Configuration config)` 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
    `boolean` | `isUrlAttribute(NodeName element, NodeName attribute)`
    `void` | `startDocument(int properties)` Start of a document node.
    `void` | `startElement(NodeName nameCode, SchemaType typeCode, int locationId, int properties)` Notify the start of an element

    - ### Methods inherited from class net.sf.saxon.event.ProxyReceiver

      `append, characters, close, comment, endDocument, endElement, getNamePool, getUnderlyingReceiver, namespace, open, processingInstruction, setPipelineConfiguration, setSystemId, setUnderlyingReceiver, setUnparsedEntity, startContent, usesTypeAnnotations`

    - ### Methods inherited from class net.sf.saxon.event.SequenceReceiver

      `append, getConfiguration, getPipelineConfiguration, getSystemId`

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

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

- - ### Field Detail

    - #### currentElement

          protected NodeName currentElement

    - #### escapeURIAttributes

          protected boolean escapeURIAttributes

    - #### pool

          protected NamePool pool

  - ### Constructor Detail

    - #### HTMLURIEscaper

          public HTMLURIEscaper(Receiver nextReceiver)

  - ### Method Detail

    - #### isUrlAttribute

          public boolean isUrlAttribute(NodeName element,
                               NodeName attribute)

    - #### startDocument

          public void startDocument(int properties)
                             throws XPathException

      Start of a document node.
      Specified by:
        `startDocument` in interface `Receiver`
      Overrides:
        `startDocument` in class `ProxyReceiver`
      Parameters:
        `properties` - bit-significant integer indicating properties of the document node. The definitions of the bits are in class `ReceiverOptions`
      Throws:
        `XPathException` - if an error occurs

    - #### 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,
                       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:
        `IllegalStateException:` - attempt to output an attribute when there is no open element start tag
        `XPathException` - if an error occurs

    - #### escapeURL

          public static CharSequence escapeURL(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`

Copyright (c) 2004-2013 Saxonica Limited. All rights reserved.