Class XMLEscapeUTF8

java.lang.Object
com.topologi.diffx.xml.esc.XMLEscapeBase
com.topologi.diffx.xml.esc.XMLEscapeUTF8
All Implemented Interfaces:
XMLEscape

public final class XMLEscapeUTF8 extends XMLEscapeBase implements XMLEscape
A utility class for escaping XML data when using the UTF-8 encoding.
Version:
7 March 2005
  • Field Details

    • UTF8_ESCAPE

      public static final XMLEscape UTF8_ESCAPE
      A static instance of the UTF8 escape class.
    • ENCODING

      private static final String ENCODING
      The encoding used for this instance.
      See Also:
  • Constructor Details

    • XMLEscapeUTF8

      private XMLEscapeUTF8()
      Prevent creation of instances
  • Method Details

    • toAttributeValue

      public String toAttributeValue(char[] ch, int off, int len)
      Replaces '<', '&', '"' and '\'' as well an any character that is not part of the standard unicode range.
       Char ::= #x9 | #xA | #xD |
                [#x20-#xD7FF] |
                [#xE000-#xFFFD] |
                [#x10000-#x10FFFF]
       
      Returns a well-formed attribute value.

      This method must replace any character in the specified value by the corresponding numeric character reference or the predefined XML general entities, if the character is not allowed or not in the encoding range.

      Attribute values must not contain '&amp' or '<. Quotes and apostrophes must also be escaped by "&quot;" and "&apos;" respectively.

      Specified by:
      toAttributeValue in interface XMLEscape
      Parameters:
      ch - The value that needs to be attribute-escaped.
      off - The start (offset) of the characters.
      len - The length of characters to.
      Returns:
      A well-formed value for the attribute.
    • toElementText

      public String toElementText(char[] ch, int off, int len)
      Replace characters which are invalid in element values, by the corresponding entity in a given String.

      these characters are:

      • '&amp' by the ampersand entity "&amp"
      • '<' by the entity "&lt;"

      Empty strings or null return respectively "" and null.

      Note: this function assumes that there are no entities in the given String. If there are existing entities, then the ampersand character will be escaped by the ampersand entity. Returns a well-formed text value for the element.

      This method must replace any character in the specified value by the corresponding numeric character reference or the predefined XML general entities, if the character is not allowed or not in the encoding range.

      The text of an element must not contain '&amp' or '<.

      Specified by:
      toElementText in interface XMLEscape
      Parameters:
      ch - The value that needs to be attribute-escaped.
      off - The start (offset) of the characters.
      len - The length of characters to.
      Returns:
      A well-formed value for the text node.