org.jdom.output

Class Format

Implemented Interfaces:
Cloneable

public class Format
extends java.lang.Object
implements Cloneable

Class to encapsulate XMLOutputter format options. Typical users can use the standard format configurations obtained by getRawFormat() (no whitespace changes), getPrettyFormat() (whitespace beautification), and getCompactFormat() (whitespace normalization).

Several modes are available to effect the way textual content is printed. See the documentation for Format.TextMode for details.

Version:
$Revision: 1.10 $, $Date: 2004/09/07 06:37:20 $

Author:
Jason Hunter

Nested Class Summary

static class
Format.TextMode
Class to signify how text should be handled on output.

Method Summary

protected Object
clone()
static Format
getCompactFormat()
Returns a new Format object that performs whitespace normalization, uses the UTF-8 encoding, doesn't expand empty elements, includes the declaration and encoding, and uses the default entity escape strategy.
String
getEncoding()
Returns the configured output encoding.
EscapeStrategy
getEscapeStrategy()
Returns the current escape strategy
boolean
getExpandEmptyElements()
Returns whether empty elements are expanded.
boolean
getIgnoreTrAXEscapingPIs()
Returns whether JAXP TrAX processing instructions for disabling/enabling output escaping are ignored.
String
getIndent()
Returns the indent string in use.
String
getLineSeparator()
Returns the current line separator.
boolean
getOmitDeclaration()
Returns whether the XML declaration will be omitted.
boolean
getOmitEncoding()
Returns whether the XML declaration encoding will be omitted.
static Format
getPrettyFormat()
Returns a new Format object that performs whitespace beautification with 2-space indents, uses the UTF-8 encoding, doesn't expand empty elements, includes the declaration and encoding, and uses the default entity escape strategy.
static Format
getRawFormat()
Returns a new Format object that performs no whitespace changes, uses the UTF-8 encoding, doesn't expand empty elements, includes the declaration and encoding, and uses the default entity escape strategy.
Format.TextMode
getTextMode()
Returns the current text output style.
Format
setEncoding(String encoding)
Sets the output encoding.
Format
setEscapeStrategy(EscapeStrategy strategy)
Sets the EscapeStrategy to use for character escaping.
Format
setExpandEmptyElements(boolean expandEmptyElements)
This will set whether empty elements are expanded from <tagName/> to <tagName></tagName>.
void
setIgnoreTrAXEscapingPIs(boolean ignoreTrAXEscapingPIs)
This will set whether JAXP TrAX processing instructions for disabling/enabling output escaping are ignored.
Format
setIndent(String indent)
This will set the indent String to use; this is usually a String of empty spaces.
Format
setLineSeparator(String separator)
This will set the newline separator (lineSeparator).
Format
setOmitDeclaration(boolean omitDeclaration)
This will set whether the XML declaration (<?xml version="1.0"?gt;) will be omitted or not.
Format
setOmitEncoding(boolean omitEncoding)
This will set whether the XML declaration (<?xml version="1.0" encoding="UTF-8"?>) includes the encoding of the document.
Format
setTextMode(Format.TextMode mode)
This sets the text output style.

Method Details

clone

protected Object clone()


getCompactFormat

public static Format getCompactFormat()
Returns a new Format object that performs whitespace normalization, uses the UTF-8 encoding, doesn't expand empty elements, includes the declaration and encoding, and uses the default entity escape strategy. Tweaks can be made to the returned Format instance without affecting other instances.

Returns:
a Format with whitespace normalization


getEncoding

public String getEncoding()
Returns the configured output encoding.

Returns:
the output encoding


getEscapeStrategy

public EscapeStrategy getEscapeStrategy()
Returns the current escape strategy

Returns:
the current escape strategy


getExpandEmptyElements

public boolean getExpandEmptyElements()
Returns whether empty elements are expanded.

Returns:
whether empty elements are expanded


getIgnoreTrAXEscapingPIs

public boolean getIgnoreTrAXEscapingPIs()
Returns whether JAXP TrAX processing instructions for disabling/enabling output escaping are ignored.

Returns:
whether or not TrAX ouput escaping PIs are ignored.


getIndent

public String getIndent()
Returns the indent string in use.

Returns:
the indent string in use


getLineSeparator

public String getLineSeparator()
Returns the current line separator.

Returns:
the current line separator


getOmitDeclaration

public boolean getOmitDeclaration()
Returns whether the XML declaration will be omitted.

Returns:
whether the XML declaration will be omitted


getOmitEncoding

public boolean getOmitEncoding()
Returns whether the XML declaration encoding will be omitted.

Returns:
whether the XML declaration encoding will be omitted


getPrettyFormat

public static Format getPrettyFormat()
Returns a new Format object that performs whitespace beautification with 2-space indents, uses the UTF-8 encoding, doesn't expand empty elements, includes the declaration and encoding, and uses the default entity escape strategy. Tweaks can be made to the returned Format instance without affecting other instances.

Returns:
a Format with whitespace beautification


getRawFormat

public static Format getRawFormat()
Returns a new Format object that performs no whitespace changes, uses the UTF-8 encoding, doesn't expand empty elements, includes the declaration and encoding, and uses the default entity escape strategy. Tweaks can be made to the returned Format instance without affecting other instances.

Returns:
a Format with no whitespace changes


getTextMode

public Format.TextMode getTextMode()
Returns the current text output style.

Returns:
the current text output style


setEncoding

public Format setEncoding(String encoding)
Sets the output encoding. The name should be an accepted XML encoding.

Parameters:
encoding - the encoding format. Use XML-style names like "UTF-8" or "ISO-8859-1" or "US-ASCII"

Returns:
a pointer to this Format for chaining


setEscapeStrategy

public Format setEscapeStrategy(EscapeStrategy strategy)
Sets the EscapeStrategy to use for character escaping.

Parameters:
strategy - the EscapeStrategy to use

Returns:
a pointer to this Format for chaining


setExpandEmptyElements

public Format setExpandEmptyElements(boolean expandEmptyElements)
This will set whether empty elements are expanded from <tagName/> to <tagName></tagName>.

Parameters:
expandEmptyElements - boolean indicating whether or not empty elements should be expanded.

Returns:
a pointer to this Format for chaining


setIgnoreTrAXEscapingPIs

public void setIgnoreTrAXEscapingPIs(boolean ignoreTrAXEscapingPIs)
This will set whether JAXP TrAX processing instructions for disabling/enabling output escaping are ignored. Disabling output escaping allows using XML text as element content and outputing it verbatim, i.e. as element children would be.

When processed, these processing instructions are removed from the generated XML text and control whether the element text content is output verbatim or with escaping of the pre-defined entities in XML 1.0. The text to be output verbatim shall be surrounded by the <?javax.xml.transform.disable-output-escaping ?> and <?javax.xml.transform.enable-output-escaping ?> PIs.

When ignored, the processing instructions are present in the generated XML text and the pre-defined entities in XML 1.0 are escaped.

Default: false.

Parameters:
ignoreTrAXEscapingPIs - boolean indicating whether or not TrAX ouput escaping PIs are ignored.

See Also:
javax.xml.transform.Result.PI_ENABLE_OUTPUT_ESCAPING, javax.xml.transform.Result.PI_DISABLE_OUTPUT_ESCAPING


setIndent

public Format setIndent(String indent)
This will set the indent String to use; this is usually a String of empty spaces. If you pass null, or the empty string (""), then no indentation will happen. Default: none (null)

Parameters:
indent - String to use for indentation.

Returns:
a pointer to this Format for chaining


setLineSeparator

public Format setLineSeparator(String separator)
This will set the newline separator (lineSeparator). The default is \r\n. Note that if the "newlines" property is false, this value is irrelevant. To make it output the system default line ending string, call setLineSeparator(System.getProperty("line.separator"))

To output "UNIX-style" documents, call setLineSeparator("\n"). To output "Mac-style" documents, call setLineSeparator("\r"). DOS-style documents use CR-LF ("\r\n"), which is the default.

Note that this only applies to newlines generated by the outputter. If you parse an XML document that contains newlines embedded inside a text node, and you do not set TextMode.NORMALIZE, then the newlines will be output verbatim, as "\n" which is how parsers normalize them.

Parameters:
separator - String line separator to use.

Returns:
a pointer to this Format for chaining

See Also:
setTextMode(Format.TextMode)


setOmitDeclaration

public Format setOmitDeclaration(boolean omitDeclaration)
This will set whether the XML declaration (<?xml version="1.0"?gt;) will be omitted or not. It is common to omit this in uses such as SOAP and XML-RPC calls.

Parameters:
omitDeclaration - boolean indicating whether or not the XML declaration should be omitted.

Returns:
a pointer to this Format for chaining


setOmitEncoding

public Format setOmitEncoding(boolean omitEncoding)
This will set whether the XML declaration (<?xml version="1.0" encoding="UTF-8"?>) includes the encoding of the document. It is common to omit this in uses such as WML and other wireless device protocols.

Parameters:
omitEncoding - boolean indicating whether or not the XML declaration should indicate the document encoding.

Returns:
a pointer to this Format for chaining


setTextMode

public Format setTextMode(Format.TextMode mode)
This sets the text output style. Options are available as static Format.TextMode instances. The default is Format.TextMode.PRESERVE.

Returns:
a pointer to this Format for chaining


Copyright B) 2004 Jason Hunter, Brett McLaughlin. All Rights Reserved.