org.apache.tools.ant.util

Class DOMElementWriter


public class DOMElementWriter
extends java.lang.Object

Writes a DOM tree to a given Writer. warning: this utility currently does not declare XML Namespaces.

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

Nested Class Summary

static class
DOMElementWriter.XmlNamespacePolicy
Whether namespaces should be ignored for elements and attributes.

Field Summary

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

Constructor Summary

DOMElementWriter()
Create an element writer.
DOMElementWriter(boolean xmlDeclaration)
Create an element writer XML namespaces will be ignored.
DOMElementWriter(boolean xmlDeclaration, DOMElementWriter.XmlNamespacePolicy namespacePolicy)
Create an element writer XML namespaces will be ignored.

Method Summary

void
closeElement(Element element, Writer out, int indent, String indentWith, boolean hasChildren)
Writes a DOM tree to a stream.
String
encode(String value)
Escape <, > & ', " as their entities and drop characters that are illegal in XML documents.
String
encodedata(String value)
Drop characters that are illegal in XML documents.
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.

boolean
isReference(String ent)
Is the given argument a character or entity reference?
void
openElement(Element element, Writer out, int indent, String indentWith)
Writes the opening tag - including all attributes - corresponding to a DOM element.
void
openElement(Element element, Writer out, int indent, String indentWith, boolean hasChildren)
Writes the opening tag - including all attributes - corresponding to a DOM element.
void
write(Element root, OutputStream out)
Writes a DOM tree to a stream in UTF8 encoding.
void
write(Element element, Writer out, int indent, String indentWith)
Writes a DOM tree to a stream.
void
writeXMLDeclaration(Writer wri)
Writes the XML declaration if xmlDeclaration is true.

Field Details

knownEntities

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

Constructor Details

DOMElementWriter

public DOMElementWriter()
Create an element writer. The ?xml? declaration will be included, namespaces ignored.

DOMElementWriter

public DOMElementWriter(boolean xmlDeclaration)
Create an element writer XML namespaces will be ignored.
Parameters:
xmlDeclaration - flag to indicate whether the ?xml? declaration should be included.
Since:
Ant1.7

DOMElementWriter

public DOMElementWriter(boolean xmlDeclaration,
                        DOMElementWriter.XmlNamespacePolicy namespacePolicy)
Create an element writer XML namespaces will be ignored.
Parameters:
xmlDeclaration - flag to indicate whether the ?xml? declaration should be included.
namespacePolicy - the policy to use.
Since:
Ant1.7

Method Details

closeElement

public void closeElement(Element element,
                         Writer out,
                         int indent,
                         String indentWith,
                         boolean hasChildren)
            throws 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.
hasChildren - if true indent.

encode

public String encode(String value)
Escape <, > & ', " as their entities and drop characters that are illegal in XML documents.
Parameters:
value - the string to encode.
Returns:
the encoded string.

encodedata

public String encodedata(String value)
Parameters:
value - the value to be encoded.
Returns:
the encoded value.

isLegalCharacter

public boolean isLegalCharacter(char c)
Parameters:
c - the character to test.
Returns:
true if the character is allowed.
Since:
1.10, Ant 1.5

isReference

public boolean isReference(String ent)
Is the given argument a character or entity reference?
Parameters:
ent - the value to be checked.
Returns:
true if it is an entity.

openElement

public void openElement(Element element,
                        Writer out,
                        int indent,
                        String indentWith)
            throws IOException
Writes the opening tag - including all attributes - corresponding to a DOM element.
Parameters:
element - the DOM element to write
out - where to send the output
indent - number of
indentWith - string that should be used to indent the corresponding tag.

openElement

public void openElement(Element element,
                        Writer out,
                        int indent,
                        String indentWith,
                        boolean hasChildren)
            throws IOException
Writes the opening tag - including all attributes - corresponding to a DOM element.
Parameters:
element - the DOM element to write
out - where to send the output
indent - number of
indentWith - string that should be used to indent the corresponding tag.
hasChildren - whether this element has children.
Since:
Ant 1.7

write

public void write(Element root,
                  OutputStream out)
            throws IOException
Writes a DOM tree to a stream in UTF8 encoding. Note that it prepends the <?xml version='1.0' encoding='UTF-8'?> if the xmlDeclaration field is true. 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.

write

public void write(Element element,
                  Writer out,
                  int indent,
                  String indentWith)
            throws 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.

writeXMLDeclaration

public void writeXMLDeclaration(Writer wri)
            throws IOException
Writes the XML declaration if xmlDeclaration is true.
Parameters:
wri - the writer to write to.
Since:
Ant 1.7.0