Package groovy.xml

# Class XmlUtil

java.lang.Object
groovy.xml.XmlUtil

public class XmlUtil extends Object
Used for pretty printing XML content and other XML related utilities.

Author:
  Paul King

## Constructor Summary

Constructors
Constructor
Description
`XmlUtil()`

## Method Summary

Modifier and Type
Method
Description
`static String`
`escapeControlCharacters(String orig)`
Escape control characters (below 0x20) with their XML entities, e.g.
`static String`
`escapeXml(String orig)`
Escape the following characters `" ' & < >` with their XML entities, e.g.
`static SAXParser`
`newSAXParser(String schemaLanguage, boolean namespaceAware, boolean validating, File schema)`
Factory method to create a SAXParser configured to validate according to a particular schema language and a File containing the schema to validate against.
`static SAXParser`
`newSAXParser(String schemaLanguage, boolean namespaceAware, boolean validating, URL schema)`
Factory method to create a SAXParser configured to validate according to a particular schema language and an URL pointing to the schema to validate against.
`static SAXParser`
`newSAXParser(String schemaLanguage, boolean namespaceAware, boolean validating, Source... schemas)`
Factory method to create a SAXParser configured to validate according to a particular schema language and optionally providing the schema sources to validate with.
`static SAXParser`
`newSAXParser(String schemaLanguage, File schema)`
Factory method to create a SAXParser configured to validate according to a particular schema language and a File containing the schema to validate against.
`static SAXParser`
`newSAXParser(String schemaLanguage, URL schema)`
Factory method to create a SAXParser configured to validate according to a particular schema language and an URL pointing to the schema to validate against.
`static SAXParser`
`newSAXParser(String schemaLanguage, Source... schemas)`
Factory method to create a SAXParser configured to validate according to a particular schema language and optionally providing the schema sources to validate with.
`static String`
`serialize(Writable writable)`
Return a pretty String version of the XML content produced by the Writable.
`static void`
`serialize(Writable writable, OutputStream os)`
Write a pretty version of the XML content produced by the Writable to the OutputStream.
`static void`
`serialize(Writable writable, Writer w)`
Write a pretty version of the XML content produced by the Writable to the Writer.
`static String`
`serialize(Node node)`
Return a pretty String version of the Node.
`static void`
`serialize(Node node, OutputStream os)`
Write a pretty version of the Node to the OutputStream.
`static void`
`serialize(Node node, Writer w)`
Write a pretty version of the Node to the Writer.
`static String`
`serialize(GPathResult node)`
Return a pretty version of the GPathResult.
`static void`
`serialize(GPathResult node, OutputStream os)`
Write a pretty version of the GPathResult to the OutputStream.
`static void`
`serialize(GPathResult node, Writer w)`
Write a pretty version of the GPathResult to the Writer.
`static String`
`serialize(String xmlString)`
Return a pretty version of the XML content contained in the given String.
`static void`
`serialize(String xmlString, OutputStream os)`
Write a pretty version of the given XML string to the OutputStream.
`static void`
`serialize(String xmlString, Writer w)`
Write a pretty version of the given XML string to the Writer.
`static String`
`serialize(Element element)`
Return a pretty String version of the Element.
`static void`
`serialize(Element element, OutputStream os)`
Write a pretty version of the Element to the OutputStream.
`static void`
`serialize(Element element, Writer w)`
Write a pretty version of the Element to the Writer.

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

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

## Constructor Details

### XmlUtil

public XmlUtil()

## Method Details

### serialize

public static String serialize(Element element)
Return a pretty String version of the Element.

Parameters:
  `element` - the Element to serialize
Returns:
  the pretty String representation of the Element

### serialize

public static void serialize(Element element, OutputStream os)
Write a pretty version of the Element to the OutputStream.

Parameters:
  `element` - the Element to serialize
  `os` - the OutputStream to write to

### serialize

public static void serialize(Element element, Writer w)
Write a pretty version of the Element to the Writer.

Parameters:
  `element` - the Element to serialize
  `w` - the Writer to write to

### serialize

public static String serialize(Node node)
Return a pretty String version of the Node.

Parameters:
  `node` - the Node to serialize
Returns:
  the pretty String representation of the Node

### serialize

public static void serialize(Node node, OutputStream os)
Write a pretty version of the Node to the OutputStream.

Parameters:
  `node` - the Node to serialize
  `os` - the OutputStream to write to

### serialize

public static void serialize(Node node, Writer w)
Write a pretty version of the Node to the Writer.

Parameters:
  `node` - the Node to serialize
  `w` - the Writer to write to

### serialize

public static String serialize(GPathResult node)
Return a pretty version of the GPathResult.

Parameters:
  `node` - a GPathResult to serialize to a String
Returns:
  the pretty String representation of the GPathResult

### serialize

public static void serialize(GPathResult node, OutputStream os)
Write a pretty version of the GPathResult to the OutputStream.

Parameters:
  `node` - a GPathResult to serialize
  `os` - the OutputStream to write to

### serialize

public static void serialize(GPathResult node, Writer w)
Write a pretty version of the GPathResult to the Writer.

Parameters:
  `node` - a GPathResult to serialize
  `w` - the Writer to write to

### serialize

public static String serialize(Writable writable)
Return a pretty String version of the XML content produced by the Writable.

Parameters:
  `writable` - the Writable to serialize
Returns:
  the pretty String representation of the content from the Writable

### serialize

public static void serialize(Writable writable, OutputStream os)
Write a pretty version of the XML content produced by the Writable to the OutputStream.

Parameters:
  `writable` - the Writable to serialize
  `os` - the OutputStream to write to

### serialize

public static void serialize(Writable writable, Writer w)
Write a pretty version of the XML content produced by the Writable to the Writer.

Parameters:
  `writable` - the Writable to serialize
  `w` - the Writer to write to

### serialize

public static String serialize(String xmlString)
Return a pretty version of the XML content contained in the given String.

Parameters:
  `xmlString` - the String to serialize
Returns:
  the pretty String representation of the original content

### serialize

public static void serialize(String xmlString, OutputStream os)
Write a pretty version of the given XML string to the OutputStream.

Parameters:
  `xmlString` - the String to serialize
  `os` - the OutputStream to write to

### serialize

public static void serialize(String xmlString, Writer w)
Write a pretty version of the given XML string to the Writer.

Parameters:
  `xmlString` - the String to serialize
  `w` - the Writer to write to

### newSAXParser

public static SAXParser newSAXParser(String schemaLanguage, Source... schemas) throws SAXException, ParserConfigurationException
Factory method to create a SAXParser configured to validate according to a particular schema language and optionally providing the schema sources to validate with. The created SAXParser will be namespace-aware and not validate against DTDs.

Parameters:
  `schemaLanguage` - the schema language used, e.g. XML Schema or RelaxNG (as per the String representation in javax.xml.XMLConstants)
  `schemas` - the schemas to validate against
Returns:
  the created SAXParser
Throws:
  `SAXException`
  `ParserConfigurationException`
Since:
  1.8.7
See Also:
  - `newSAXParser(String, boolean, boolean, Source...)`

### newSAXParser

public static SAXParser newSAXParser(String schemaLanguage, boolean namespaceAware, boolean validating, Source... schemas) throws SAXException, ParserConfigurationException
Factory method to create a SAXParser configured to validate according to a particular schema language and optionally providing the schema sources to validate with.

Parameters:
  `schemaLanguage` - the schema language used, e.g. XML Schema or RelaxNG (as per the String representation in javax.xml.XMLConstants)
  `namespaceAware` - will the parser be namespace aware
  `validating` - will the parser also validate against DTDs
  `schemas` - the schemas to validate against
Returns:
  the created SAXParser
Throws:
  `SAXException`
  `ParserConfigurationException`
Since:
  1.8.7

### newSAXParser

public static SAXParser newSAXParser(String schemaLanguage, File schema) throws SAXException, ParserConfigurationException
Factory method to create a SAXParser configured to validate according to a particular schema language and a File containing the schema to validate against. The created SAXParser will be namespace-aware and not validate against DTDs.

Parameters:
  `schemaLanguage` - the schema language used, e.g. XML Schema or RelaxNG (as per the String representation in javax.xml.XMLConstants)
  `schema` - a file containing the schema to validate against
Returns:
  the created SAXParser
Throws:
  `SAXException`
  `ParserConfigurationException`
Since:
  1.8.7
See Also:
  - `newSAXParser(String, boolean, boolean, File)`

### newSAXParser

public static SAXParser newSAXParser(String schemaLanguage, boolean namespaceAware, boolean validating, File schema) throws SAXException, ParserConfigurationException
Factory method to create a SAXParser configured to validate according to a particular schema language and a File containing the schema to validate against.

Parameters:
  `schemaLanguage` - the schema language used, e.g. XML Schema or RelaxNG (as per the String representation in javax.xml.XMLConstants)
  `namespaceAware` - will the parser be namespace aware
  `validating` - will the parser also validate against DTDs
  `schema` - a file containing the schema to validate against
Returns:
  the created SAXParser
Throws:
  `SAXException`
  `ParserConfigurationException`
Since:
  1.8.7

### newSAXParser

public static SAXParser newSAXParser(String schemaLanguage, URL schema) throws SAXException, ParserConfigurationException
Factory method to create a SAXParser configured to validate according to a particular schema language and an URL pointing to the schema to validate against. The created SAXParser will be namespace-aware and not validate against DTDs.

Parameters:
  `schemaLanguage` - the schema language used, e.g. XML Schema or RelaxNG (as per the String representation in javax.xml.XMLConstants)
  `schema` - a URL pointing to the schema to validate against
Returns:
  the created SAXParser
Throws:
  `SAXException`
  `ParserConfigurationException`
Since:
  1.8.7
See Also:
  - `newSAXParser(String, boolean, boolean, URL)`

### newSAXParser

public static SAXParser newSAXParser(String schemaLanguage, boolean namespaceAware, boolean validating, URL schema) throws SAXException, ParserConfigurationException
Factory method to create a SAXParser configured to validate according to a particular schema language and an URL pointing to the schema to validate against.

Parameters:
  `schemaLanguage` - the schema language used, e.g. XML Schema or RelaxNG (as per the String representation in javax.xml.XMLConstants)
  `namespaceAware` - will the parser be namespace aware
  `validating` - will the parser also validate against DTDs
  `schema` - a URL pointing to the schema to validate against
Returns:
  the created SAXParser
Throws:
  `SAXException`
  `ParserConfigurationException`
Since:
  1.8.7

### escapeXml

public static String escapeXml(String orig)
Escape the following characters `" ' & < >` with their XML entities, e.g. `"bread" & "butter"` becomes `&quot;bread&quot; &amp; &quot;butter&quot`. Notes:

- Supports only the five basic XML entities (gt, lt, quot, amp, apos)
- Does not escape control characters
- Does not support DTDs or external entities
- Does not treat surrogate pairs specially
- Does not perform Unicode validation on its input

Parameters:
  `orig` - the original String
Returns:
  A new string in which all characters that require escaping have been replaced with the corresponding XML entities.
See Also:
  - `escapeControlCharacters(String)`

### escapeControlCharacters

public static String escapeControlCharacters(String orig)
Escape control characters (below 0x20) with their XML entities, e.g. carriage return (`Ctrl-M or \r`) becomes `&#13;` Notes:

- Does not escape non-ascii characters above 0x7e
- Does not treat surrogate pairs specially
- Does not perform Unicode validation on its input

Parameters:
  `orig` - the original String
Returns:
  A new string in which all characters that require escaping have been replaced with the corresponding XML entities.
See Also:
  - `escapeXml(String)`