XMLUtil (Apache FOP Core 2.11 API)
Date: 2025-04-24

org.apache.fop.util

## Class XMLUtil

- java.lang.Object
- - org.apache.fop.util.XMLUtil

- All Implemented Interfaces:
    XMLConstants

      public final class XMLUtil
      extends Object
      implements XMLConstants

  A collection of utility method for XML handling.

- - ### Field Summary

    - ### Fields inherited from interface org.apache.fop.util.XMLConstants

      `CDATA, XLINK_HREF, XLINK_NAMESPACE, XLINK_PREFIX, XML_NAMESPACE, XML_PREFIX, XML_SPACE, XMLNS_NAMESPACE_URI, XMLNS_PREFIX`

  - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static void` | `addAttribute(AttributesImpl atts, org.apache.xmlgraphics.util.QName attribute, String value)` Adds an attribute to a given `AttributesImpl` instance.
    `static void` | `addAttribute(AttributesImpl atts, String localName, String value)` Adds an attribute to a given `AttributesImpl` instance.
    `static int[][]` | `decodePositionAdjustments(String value)` Decode a string as a glyph position adjustments array, where the string shall adhere to the syntax specified by `encodePositionAdjustments(int[][], int)`.
    `static String` | `encodePositionAdjustments(int[][] dp)` Encode a glyph position adjustments array as a string, where the string value adheres to the following syntax: count ( 'Z' repeat | number ) where each token is separated by whitespace, except that 'Z' followed by repeat are considered to be a single token with no intervening whitespace.
    `static String` | `encodePositionAdjustments(int[][] dp, int paCount)` Encode a glyph position adjustments array as a string, where the string value adheres to the following syntax: count ( 'Z' repeat | number ) where each token is separated by whitespace, except that 'Z' followed by repeat are considered to be a single token with no intervening whitespace, and where 'Z' repeat encodes repeated zeroes.
    `static String` | `escape(String unescaped)` Escape '<', '>' and '&' using NCRs.
    `static boolean` | `getAttributeAsBoolean(Attributes attributes, String name, boolean defaultValue)` Returns an attribute value as a boolean value.
    `static int` | `getAttributeAsInt(Attributes attributes, String name)` Returns an attribute value as a int value.
    `static int` | `getAttributeAsInt(Attributes attributes, String name, int defaultValue)` Returns an attribute value as a int value.
    `static int[]` | `getAttributeAsIntArray(Attributes attributes, String name)` Returns an attribute value as a integer array.
    `static Integer` | `getAttributeAsInteger(Attributes attributes, String name)` Returns an attribute value as a Integer value.
    `static int[][]` | `getAttributeAsPositionAdjustments(Attributes attributes, String name)` Returns an attribute value as a glyph position adjustments array.
    `static Rectangle` | `getAttributeAsRectangle(Attributes attributes, String name)` Returns an attribute value as a Rectangle value.
    `static Rectangle2D` | `getAttributeAsRectangle2D(Attributes attributes, String name)` Returns an attribute value as a Rectangle2D value.

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

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

- - ### Method Detail

    - #### getAttributeAsBoolean

          public static boolean getAttributeAsBoolean(Attributes attributes,
                                                      String name,
                                                      boolean defaultValue)

      Returns an attribute value as a boolean value.
      Parameters:
        `attributes` - the Attributes object
        `name` - the name of the attribute
        `defaultValue` - the default value if the attribute is not specified
      Returns:
        the attribute value as a boolean

    - #### getAttributeAsInt

          public static int getAttributeAsInt(Attributes attributes,
                                              String name,
                                              int defaultValue)

      Returns an attribute value as a int value.
      Parameters:
        `attributes` - the Attributes object
        `name` - the name of the attribute
        `defaultValue` - the default value if the attribute is not specified
      Returns:
        the attribute value as an int

    - #### getAttributeAsInt

          public static int getAttributeAsInt(Attributes attributes,
                                              String name)
                                       throws SAXException

      Returns an attribute value as a int value.
      Parameters:
        `attributes` - the Attributes object
        `name` - the name of the attribute
      Returns:
        the attribute value as an int
      Throws:
        `SAXException` - if the attribute is missing

    - #### getAttributeAsInteger

          public static Integer getAttributeAsInteger(Attributes attributes,
                                                      String name)

      Returns an attribute value as a Integer value.
      Parameters:
        `attributes` - the Attributes object
        `name` - the name of the attribute
      Returns:
        the attribute value as an Integer or null if the attribute is missing

    - #### getAttributeAsRectangle2D

          public static Rectangle2D getAttributeAsRectangle2D(Attributes attributes,
                                                              String name)

      Returns an attribute value as a Rectangle2D value. The string value is expected as 4 double-precision numbers separated by whitespace.
      Parameters:
        `attributes` - the Attributes object
        `name` - the name of the attribute
      Returns:
        the attribute value as an Rectangle2D

    - #### getAttributeAsRectangle

          public static Rectangle getAttributeAsRectangle(Attributes attributes,
                                                          String name)

      Returns an attribute value as a Rectangle value. The string value is expected as 4 integer numbers separated by whitespace.
      Parameters:
        `attributes` - the Attributes object
        `name` - the name of the attribute
      Returns:
        the attribute value as an Rectangle

    - #### getAttributeAsIntArray

          public static int[] getAttributeAsIntArray(Attributes attributes,
                                                     String name)

      Returns an attribute value as a integer array. The string value is expected as 4 integer numbers separated by whitespace.
      Parameters:
        `attributes` - the Attributes object
        `name` - the name of the attribute
      Returns:
        the attribute value as an int array

    - #### addAttribute

          public static void addAttribute(AttributesImpl atts,
                                          org.apache.xmlgraphics.util.QName attribute,
                                          String value)

      Adds an attribute to a given `AttributesImpl` instance.
      Parameters:
        `atts` - the attributes collection
        `attribute` - the attribute to add
        `value` - the attribute's CDATA value

    - #### addAttribute

          public static void addAttribute(AttributesImpl atts,
                                          String localName,
                                          String value)

      Adds an attribute to a given `AttributesImpl` instance. The attribute will be added in the default namespace.
      Parameters:
        `atts` - the attributes collection
        `localName` - the local name of the attribute
        `value` - the attribute's CDATA value

    - #### encodePositionAdjustments

          public static String encodePositionAdjustments(int[][] dp,
                                                         int paCount)

      Encode a glyph position adjustments array as a string, where the string value adheres to the following syntax: count ( 'Z' repeat | number ) where each token is separated by whitespace, except that 'Z' followed by repeat are considered to be a single token with no intervening whitespace, and where 'Z' repeat encodes repeated zeroes.
      Parameters:
        `dp` - the adjustments array
        `paCount` - the number of entries to encode from adjustments array
      Returns:
        the encoded value

    - #### encodePositionAdjustments

          public static String encodePositionAdjustments(int[][] dp)

      Encode a glyph position adjustments array as a string, where the string value adheres to the following syntax: count ( 'Z' repeat | number ) where each token is separated by whitespace, except that 'Z' followed by repeat are considered to be a single token with no intervening whitespace.
      Parameters:
        `dp` - the adjustments array
      Returns:
        the encoded value

    - #### decodePositionAdjustments

          public static int[][] decodePositionAdjustments(String value)

      Decode a string as a glyph position adjustments array, where the string shall adhere to the syntax specified by `encodePositionAdjustments(int[][], int)`.
      Parameters:
        `value` - the encoded value
      Returns:
        the position adjustments array

    - #### getAttributeAsPositionAdjustments

          public static int[][] getAttributeAsPositionAdjustments(Attributes attributes,
                                                                  String name)

      Returns an attribute value as a glyph position adjustments array. The string value is expected to be a non-empty sequence of either Z<repeat> or <number>, where the former encodes a repeat count (of zeroes) and the latter encodes a integer number, and where each item is separated by whitespace.
      Parameters:
        `attributes` - the Attributes object
        `name` - the name of the attribute
      Returns:
        the position adjustments array

    - #### escape

          public static String escape(String unescaped)

      Escape '<', '>' and '&' using NCRs.
      Parameters:
        `unescaped` - string
      Returns:
        escaped string

Copyright © 2025 Apache Software Foundation. All rights reserved.