Package org.dom4j.io

Class OutputFormat

java.lang.Object
org.dom4j.io.OutputFormat
All Implemented Interfaces:
Cloneable

public class OutputFormat extends Object implements Cloneable
OutputFormat represents the format configuration used by XMLWriterand its base classes to format the XML output
Version:
$Revision: 1.17 $
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private char
    Quote character to use when writing attributes.
    private boolean
    Whether or not to use XHTML standard.
    private String
    The encoding format
    private boolean
    Whether or not to expand empty elements to <tagName></tagName> - default is false
    private String
    The default indent is no spaces (as original document)
    private String
    New line separator
    private boolean
    Whether or not to print new line after the XML declaration - default is true
    private int
    Controls when to output a line.separtor every so many tags in case of no lines and total text trimming.
    private boolean
    The default new line flag, set to do new lines only as in original document
    private boolean
    Whether or not to output the encoding in the XML declaration - default is false
    private boolean
    pad string-element boundaries with whitespace
    protected static final String
    standard value to indent by, if we are indenting
    private boolean
    Whether or not to suppress the XML declaration - default is false
    private boolean
    should we preserve whitespace or not in text nodes?
  • Constructor Summary

    Constructors
    Constructor
    Description
    Creates an OutputFormat with no additional whitespace (indent or new lines) added.
    Creates an OutputFormat with the given indent added but no new lines added.
    OutputFormat(String indent, boolean newlines)
    Creates an OutputFormat with the given indent added with optional newlines between the Elements.
    OutputFormat(String indent, boolean newlines, String encoding)
    Creates an OutputFormat with the given indent added with optional newlines between the Elements and the given encoding format.
  • Method Summary

    Modifier and Type
    Method
    Description
    A static helper method to create the default compact format.
    A static helper method to create the default pretty printing format.
    char
     
     
     
     
    int
     
    boolean
     
    boolean
    DOCUMENT ME!
    boolean
     
    boolean
     
    boolean
     
    boolean
    DOCUMENT ME!
    boolean
     
    boolean
    Whether or not to use the XHTML standard: like HTML but passes an XML parser with real, closed tags.
    int
    parseOptions(String[] args, int i)
    Parses command line arguments of the form -omitEncoding -indentSize 3 -newlines -trimText
    void
    Sets the character used to quote attribute values.
    void
    setEncoding(String encoding)
    DOCUMENT ME!
    void
    setExpandEmptyElements(boolean expandEmptyElements)
    This will set whether empty elements are expanded from <tagName> to <tagName></tagName>.
    void
    setIndent(boolean doIndent)
    Set the indent on or off.
    void
    setIndent(String indent)
    This will set the indent String to use; this is usually a String of empty spaces.
    void
    setIndentSize(int indentSize)
    This will set the indent String's size; an indentSize of 4 would result in the indention being equivalent to the String "    " (four space characters).
    void
    This will set the new-line separator.
    void
    setNewLineAfterDeclaration(boolean newLineAfterDeclaration)
    This will set whether a new line is printed after the XML declaration (assuming it is not supressed.)
    void
    setNewLineAfterNTags(int tagCount)
    Controls output of a line.separator every tagCount tags when isNewlines is false.
    void
    setNewlines(boolean newlines)
    DOCUMENT ME!
    void
    setOmitEncoding(boolean omitEncoding)
    This will set whether the XML declaration (<?xml version="1.0" encoding="UTF-8"?>) includes the encoding of the document.
    void
    setPadText(boolean padText)
    Ensure that text immediately preceded by or followed by an element will be "padded" with a single space.
    void
    setSuppressDeclaration(boolean suppressDeclaration)
    This will set whether the XML declaration (<?xml version="1.0" encoding="UTF-8"?>) is included or not.
    void
    setTrimText(boolean trimText)
    This will set whether the text is output verbatim (false) or with whitespace stripped as per Element.getTextTrim().
    void
    setXHTML(boolean xhtml)
    This will set whether or not to use the XHTML standard: like HTML but passes an XML parser with real, closed tags.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • STANDARD_INDENT

      protected static final String STANDARD_INDENT
      standard value to indent by, if we are indenting
      See Also:
    • suppressDeclaration

      private boolean suppressDeclaration
      Whether or not to suppress the XML declaration - default is false
    • newLineAfterDeclaration

      private boolean newLineAfterDeclaration
      Whether or not to print new line after the XML declaration - default is true
    • encoding

      private String encoding
      The encoding format
    • omitEncoding

      private boolean omitEncoding
      Whether or not to output the encoding in the XML declaration - default is false
    • indent

      private String indent
      The default indent is no spaces (as original document)
    • expandEmptyElements

      private boolean expandEmptyElements
      Whether or not to expand empty elements to <tagName></tagName> - default is false
    • newlines

      private boolean newlines
      The default new line flag, set to do new lines only as in original document
    • lineSeparator

      private String lineSeparator
      New line separator
    • trimText

      private boolean trimText
      should we preserve whitespace or not in text nodes?
    • padText

      private boolean padText
      pad string-element boundaries with whitespace
    • doXHTML

      private boolean doXHTML
      Whether or not to use XHTML standard.
    • newLineAfterNTags

      private int newLineAfterNTags
      Controls when to output a line.separtor every so many tags in case of no lines and total text trimming.
    • attributeQuoteChar

      private char attributeQuoteChar
      Quote character to use when writing attributes.
  • Constructor Details

    • OutputFormat

      public OutputFormat()
      Creates an OutputFormat with no additional whitespace (indent or new lines) added. The whitespace from the element text content is fully preserved.
    • OutputFormat

      public OutputFormat(String indent)
      Creates an OutputFormat with the given indent added but no new lines added. All whitespace from element text will be included.
      Parameters:
      indent - is the indent string to be used for indentation (usually a number of spaces).
    • OutputFormat

      public OutputFormat(String indent, boolean newlines)
      Creates an OutputFormat with the given indent added with optional newlines between the Elements. All whitespace from element text will be included.
      Parameters:
      indent - is the indent string to be used for indentation (usually a number of spaces).
      newlines - whether new lines are added to layout the
    • OutputFormat

      public OutputFormat(String indent, boolean newlines, String encoding)
      Creates an OutputFormat with the given indent added with optional newlines between the Elements and the given encoding format.
      Parameters:
      indent - is the indent string to be used for indentation (usually a number of spaces).
      newlines - whether new lines are added to layout the
      encoding - is the text encoding to use for writing the XML
  • Method Details

    • getLineSeparator

      public String getLineSeparator()
    • setLineSeparator

      public void setLineSeparator(String separator)

      This will set the new-line separator. The default is \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"))

      Parameters:
      separator - String line separator to use.
      See Also:
    • isNewlines

      public boolean isNewlines()
    • setNewlines

      public void setNewlines(boolean newlines)
      DOCUMENT ME!
      Parameters:
      newlines - true indicates new lines should be printed, else new lines are ignored (compacted).
      See Also:
    • getEncoding

      public String getEncoding()
    • setEncoding

      public void setEncoding(String encoding)
      DOCUMENT ME!
      Parameters:
      encoding - encoding format
    • isOmitEncoding

      public boolean isOmitEncoding()
    • setOmitEncoding

      public void 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 suppress this in protocols such as WML and SOAP.

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

      public void setSuppressDeclaration(boolean suppressDeclaration)

      This will set whether the XML declaration (<?xml version="1.0" encoding="UTF-8"?>) is included or not. It is common to suppress this in protocols such as WML and SOAP.

      Parameters:
      suppressDeclaration - boolean indicating whether or not the XML declaration should be suppressed.
    • isSuppressDeclaration

      public boolean isSuppressDeclaration()
      DOCUMENT ME!
      Returns:
      true if the output of the XML declaration (<?xml version="1.0"?>) should be suppressed else false.
    • setNewLineAfterDeclaration

      public void setNewLineAfterDeclaration(boolean newLineAfterDeclaration)

      This will set whether a new line is printed after the XML declaration (assuming it is not supressed.)

      Parameters:
      newLineAfterDeclaration - boolean indicating whether or not to print new line following the XML declaration. The default is true.
    • isNewLineAfterDeclaration

      public boolean isNewLineAfterDeclaration()
      DOCUMENT ME!
      Returns:
      true if a new line should be printed following XML declaration
    • isExpandEmptyElements

      public boolean isExpandEmptyElements()
    • setExpandEmptyElements

      public void 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.
    • isTrimText

      public boolean isTrimText()
    • setTrimText

      public void setTrimText(boolean trimText)
      This will set whether the text is output verbatim (false) or with whitespace stripped as per Element.getTextTrim(). Default: false
      Parameters:
      trimText - boolean true → trim the whitespace, false → use text verbatim
    • isPadText

      public boolean isPadText()
    • setPadText

      public void setPadText(boolean padText)
      Ensure that text immediately preceded by or followed by an element will be "padded" with a single space. This is used to allow make browser-friendly HTML, avoiding trimText's transformation of, e.g., The quick <b>brown</b> fox into The quick<b>brown</b>fox (the latter will run the three separate words together into a single word). This setting is not too useful if you haven't also called setTrimText(boolean). The padding string will only be added if the text itself starts or ends with some whitespace characters. Default: false
      Parameters:
      padText - boolean if true, pad string-element boundaries
    • getIndent

      public String getIndent()
    • setIndent

      public void 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.
    • setIndent

      public void setIndent(boolean doIndent)
      Set the indent on or off. If setting on, will use the value of STANDARD_INDENT, which is usually two spaces.
      Parameters:
      doIndent - if true, set indenting on; if false, set indenting off
    • setIndentSize

      public void setIndentSize(int indentSize)
      This will set the indent String's size; an indentSize of 4 would result in the indention being equivalent to the String "    " (four space characters).
      Parameters:
      indentSize - int number of spaces in indentation.
    • isXHTML

      public boolean isXHTML()
      Whether or not to use the XHTML standard: like HTML but passes an XML parser with real, closed tags. Also, XHTML CDATA sections will be output with the CDATA delimiters: ( " <![CDATA[ " and " ]]> " ) otherwise, the class HTMLWriter will output the CDATA text, but not the delimiters. Default is false
      Returns:
      DOCUMENT ME!
    • setXHTML

      public void setXHTML(boolean xhtml)
      This will set whether or not to use the XHTML standard: like HTML but passes an XML parser with real, closed tags. Also, XHTML CDATA sections will be output with the CDATA delimiters: ( " <[CDATA[ " and " ]]< ) otherwise, the class HTMLWriter will output the CDATA text, but not the delimiters. Default: false
      Parameters:
      xhtml - boolean true → conform to XHTML, false → conform to HTML, can have unclosed tags, etc.
    • getNewLineAfterNTags

      public int getNewLineAfterNTags()
    • setNewLineAfterNTags

      public void setNewLineAfterNTags(int tagCount)
      Controls output of a line.separator every tagCount tags when isNewlines is false. If tagCount equals zero, it means don't do anything special. If greater than zero, then a line.separator will be output after tagCount tags have been output. Used when you would like to squeeze the html as much as possible, but some browsers don't like really long lines. A tag count of 10 would produce a line.separator in the output after 10 close tags (including single tags).
      Parameters:
      tagCount - DOCUMENT ME!
    • getAttributeQuoteCharacter

      public char getAttributeQuoteCharacter()
    • setAttributeQuoteCharacter

      public void setAttributeQuoteCharacter(char quoteChar)
      Sets the character used to quote attribute values. The specified character must be a valid XML attribute quote character, otherwise an IllegalArgumentException will be thrown.
      Parameters:
      quoteChar - The character to use when quoting attribute values.
      Throws:
      IllegalArgumentException - If the specified character is not a valid XML attribute quote character.
    • parseOptions

      public int parseOptions(String[] args, int i)
      Parses command line arguments of the form -omitEncoding -indentSize 3 -newlines -trimText
      Parameters:
      args - is the array of command line arguments
      i - is the index in args to start parsing options
      Returns:
      the index of first parameter that we didn't understand
    • createPrettyPrint

      public static OutputFormat createPrettyPrint()
      A static helper method to create the default pretty printing format. This format consists of an indent of 2 spaces, newlines after each element and all other whitespace trimmed, and XMTML is false.
      Returns:
      DOCUMENT ME!
    • createCompactFormat

      public static OutputFormat createCompactFormat()
      A static helper method to create the default compact format. This format does not have any indentation or newlines after an alement and all other whitespace trimmed
      Returns:
      DOCUMENT ME!