com.topologi.diffx.xml.esc
Class XMLEscapeASCII

java.lang.Object
  extended by com.topologi.diffx.xml.esc.XMLEscapeASCII
All Implemented Interfaces:
XMLEscape

public final class XMLEscapeASCII
extends Object
implements XMLEscape

A singleton for escaping XML data when using the 'ASCII' encoding.

Version:
16 January 2007
Author:
Christophe Lauret

Field Summary
static XMLEscape ASCII_ESCAPE
          A static instance of the UTF8 escape class.
 
Method Summary
 String getEncoding()
          Returns the encoding used.
 String toAttributeValue(char[] ch, int off, int len)
          Replaces '<', '&', '"' and '\'' as well an any character that is not part of the standard unicode range.
 String toAttributeValue(String value)
          Default implementation calling the XMLEscape.toAttributeValue(char[], int, int).
 String toElementText(char[] ch, int off, int len)
          Replace characters which are invalid in element values, by the corresponding entity in a given String.
 String toElementText(String value)
          Default implementation calling the XMLEscape.toAttributeValue(char[], int, int).
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.topologi.diffx.xml.esc.XMLEscape
getEncoding, toAttributeValue, toElementText
 

Field Detail

ASCII_ESCAPE

public static final XMLEscape ASCII_ESCAPE
A static instance of the UTF8 escape class.

Method Detail

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 '&' 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:

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 '&' 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.

toAttributeValue

public final String toAttributeValue(String value)
Default implementation calling the XMLEscape.toAttributeValue(char[], int, int). Returns a well-formed attribute value.

Method provided for convenience, using the same specifications as XMLEscape.toAttributeValue(char[], int, int).

This method should return null if the given value is null.

Specified by:
toAttributeValue in interface XMLEscape
Parameters:
value - The value that needs to be attribute-escaped.
Returns:
A well-formed value for the attribute.

toElementText

public final String toElementText(String value)
Default implementation calling the XMLEscape.toAttributeValue(char[], int, int). Returns a well-formed text value for the element.

Method provided for convenience, using the same specifications as XMLEscape.toElementText(char[], int, int).

This method should return null if the given value is null.

Specified by:
toElementText in interface XMLEscape
Parameters:
value - The value that needs to be text-escaped.
Returns:
A well-formed value for the text node.

getEncoding

public final String getEncoding()
Returns the encoding used. Returns the encoding used by the implementing class.

Specified by:
getEncoding in interface XMLEscape
Returns:
The encoding used by the implementing class.