Enum Class XmlEscapeLevel

Object
Enum<XmlEscapeLevel>
org.unbescape.xml.XmlEscapeLevel
All Implemented Interfaces:
Serializable, Comparable<XmlEscapeLevel>, Constable

public enum XmlEscapeLevel extends Enum<XmlEscapeLevel>

Levels defined for XML escape/unescape operations:

  • Level 1: Escape only markup-significant characters (all five XML predefined entities). Therefore <, >, &, " and ' will be escaped. This level is safe for use in texts and also XML tag attributes (tag attributes are always quoted in XML). Note the result of a level-1 escape operation might still contain non-ASCII characters if they existed in input, and therefore you will still need to correctly manage your input/output character encoding settings.
  • Level 2: Escape all markup-significant characters (as defined in level 1), plus all non-ASCII characters. The result of a level-2 escape operation is therefore always ASCII-only text, and safer to use in complex scenarios with mixed input/output character encodings. This level is safe for use in texts and also XML tag attributes (tag attributes are always quoted in XML).
  • Level 3: Escape all non-alphanumeric characters, this is, all but those in the A-Z, a-z and 0-9 ranges. This level can be safely used for completely escaping texts, including whitespace, line feeds, punctuation, etc. in scenarios where this adds an extra level of safety.
  • Level 4: Escape all characters, even alphanumeric ones.

Note that, apart from the settings established by each of these levels, different XML versions might establish the required escaping of a series of control characteres (basically, all the allowed ones). These control character will be always escaped, from level 1. Besides, some characters considered invalid in such versions of XML might be directly removed from output.

Also note that no level 0 exists, in order to keep consistency with HTML escape levels defined in HtmlEscapeLevel.

For further information, see the Glossary and the References sections at the documentation for the XmlEscape class.

Since:
1.0.0
Author:
Daniel Fernández
  • Enum Constant Details

    • LEVEL_1_ONLY_MARKUP_SIGNIFICANT

      public static final XmlEscapeLevel LEVEL_1_ONLY_MARKUP_SIGNIFICANT
      Level 1 escape: escape only markup-significant characters (all five XML predefined entities): <, >, &, " and '
    • LEVEL_2_ALL_NON_ASCII_PLUS_MARKUP_SIGNIFICANT

      public static final XmlEscapeLevel LEVEL_2_ALL_NON_ASCII_PLUS_MARKUP_SIGNIFICANT
      Level 2 escape: escape markup-significant characters plus all non-ASCII characters (result will always be ASCII).
    • LEVEL_3_ALL_NON_ALPHANUMERIC

      public static final XmlEscapeLevel LEVEL_3_ALL_NON_ALPHANUMERIC
      Level 3 escape: escape all non-alphanumeric characteres (escape all but those in the A-Z, a-z and 0-9 ranges).
    • LEVEL_4_ALL_CHARACTERS

      public static final XmlEscapeLevel LEVEL_4_ALL_CHARACTERS
      Level 4 escape: escape all characters, including alphanumeric.
  • Method Details

    • values

      public static XmlEscapeLevel[] values()
      Returns an array containing the constants of this enum class, in the order they are declared.
      Returns:
      an array containing the constants of this enum class, in the order they are declared
    • valueOf

      public static XmlEscapeLevel valueOf(String name)
      Returns the enum constant of this class with the specified name. The string must match exactly an identifier used to declare an enum constant in this class. (Extraneous whitespace characters are not permitted.)
      Parameters:
      name - the name of the enum constant to be returned.
      Returns:
      the enum constant with the specified name
      Throws:
      IllegalArgumentException - if this enum class has no constant with the specified name
      NullPointerException - if the argument is null
    • forLevel

      public static XmlEscapeLevel forLevel(int level)

      Utility method for obtaining an enum value from its corresponding int level value.

      Parameters:
      level - the level
      Returns:
      the escape level enum constant, or IllegalArgumentException if level does not exist.
    • getEscapeLevel

      public int getEscapeLevel()
      Return the int escape level.
      Returns:
      the escape level.