## org.apache.tools.ant.util
Class DOMElementWriter

    java.lang.Object
      |
      +--org.apache.tools.ant.util.DOMElementWriter

public class DOMElementWriter
extends java.lang.Object

Writes a DOM tree to a given Writer.

Utility class used by `XmlLogger` and org.apache.tools.ant.taskdefs.optional.junit.XMLJUnitResultFormatter XMLJUnitResultFormatter}.

Author:
  The original author of XmlLogger, Stefan Bodewig, Stephane Bailliez

Field Summary
`protected java.lang.String[]` `knownEntities` Don't try to be too smart but at least recognize the predefined entities.

Constructor Summary
`DOMElementWriter()`

Method Summary
`java.lang.String` `encode(java.lang.String value)` Escape <, > & ', " as their entities and drop characters that are illegal in XML documents.
`java.lang.String` `encodedata(java.lang.String value)` Drop characters that are illegal in XML documents.
`boolean` `isLegalCharacter(char c)` Is the given character allowed inside an XML document?
`boolean` `isReference(java.lang.String ent)` Is the given argument a character or entity reference?
`void` `write(org.w3c.dom.Element root, java.io.OutputStream out)` Writes a DOM tree to a stream in UTF8 encoding.
`void` `write(org.w3c.dom.Element element, java.io.Writer out, int indent, java.lang.String indentWith)` Writes a DOM tree to a stream.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### knownEntities

    protected java.lang.String[] knownEntities

  Don't try to be too smart but at least recognize the predefined entities.

Constructor Detail

### DOMElementWriter

    public DOMElementWriter()

Method Detail

### write

    public void write(org.w3c.dom.Element root,
                      java.io.OutputStream out)
               throws java.io.IOException

  Writes a DOM tree to a stream in UTF8 encoding. Note that it appends the <?xml version='1.0' encoding='UTF-8'?>. The indent number is set to 0 and a 2-space indent.

  Parameters:
    `root` - the root element of the DOM tree.
    `out` - the outputstream to write to.
  Throws:
    `java.io.IOException` - if an error happens while writing to the stream.

### write

    public void write(org.w3c.dom.Element element,
                      java.io.Writer out,
                      int indent,
                      java.lang.String indentWith)
               throws java.io.IOException

  Writes a DOM tree to a stream.

  Parameters:
    `element` - the Root DOM element of the tree
    `out` - where to send the output
    `indent` - number of
    `indentWith` - string that should be used to indent the corresponding tag.
  Throws:
    `java.io.IOException` - if an error happens while writing to the stream.

### encode

    public java.lang.String encode(java.lang.String value)

  Escape <, > & ', " as their entities and drop characters that are illegal in XML documents.

### encodedata

    public java.lang.String encodedata(java.lang.String value)

  Drop characters that are illegal in XML documents.

  Also ensure that we are not including an `]]>` marker by replacing that sequence with `&#x5d;&#x5d;&gt;`.

  See XML 1.0 2.2 http://www.w3.org/TR/1998/REC-xml-19980210#charsets and 2.7 http://www.w3.org/TR/1998/REC-xml-19980210#sec-cdata-sect.

### isReference

    public boolean isReference(java.lang.String ent)

  Is the given argument a character or entity reference?

### isLegalCharacter

    public boolean isLegalCharacter(char c)

  Is the given character allowed inside an XML document?

  See XML 1.0 2.2 http://www.w3.org/TR/1998/REC-xml-19980210#charsets.

  Since:
    1.10, Ant 1.5

Copyright © 2000-2003 Apache Software Foundation. All Rights Reserved.