Package org.apache.tools.ant.util
Class DOMElementWriter
java.lang.Object
org.apache.tools.ant.util.DOMElementWriter
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic class
Whether namespaces should be ignored for elements and attributes. -
Field Summary
Modifier and TypeFieldDescriptionprotected String[]
Don't try to be too smart but at least recognize the predefined entities. -
Constructor Summary
ConstructorDescriptionCreate 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
Modifier and TypeMethodDescriptionvoid
closeElement
(Element element, Writer out, int indent, String indentWith, boolean hasChildren) Writes a DOM tree to a stream.Escape <, >, &, ', " as their entities and drop characters that are illegal in XML documents.encodeAttributeValue
(String value) Escape <, >, &, ', " as their entities, \n, \r and \t as numeric entities and drop characters that are illegal in XML documents.void
encodedata
(Writer out, String value) Drop characters that are illegal in XML documents and write the rest to the given writer.encodedata
(String value) Drop characters that are illegal in XML documents.boolean
isLegalCharacter
(char c) Is the given character allowed inside an XML document?static boolean
isLegalXmlCharacter
(char c) Is the given character allowed inside an XML document?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
Writes a DOM tree to a stream.void
Writes the XML declaration if xmlDeclaration is true.
-
Field Details
-
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
-
write
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.- Throws:
IOException
- if an error happens while writing to the stream.
-
writeXMLDeclaration
Writes the XML declaration if xmlDeclaration is true.- Parameters:
wri
- the writer to write to.- Throws:
IOException
- if there is an error.- Since:
- Ant 1.7.0
-
write
Writes a DOM tree to a stream.- Parameters:
element
- the Root DOM element of the treeout
- where to send the outputindent
- number ofindentWith
- string that should be used to indent the corresponding tag.- Throws:
IOException
- if an error happens while writing to the stream.
-
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 writeout
- where to send the outputindent
- number ofindentWith
- string that should be used to indent the corresponding tag.- Throws:
IOException
- if an error happens while writing to the stream.
-
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 writeout
- where to send the outputindent
- number ofindentWith
- string that should be used to indent the corresponding tag.hasChildren
- whether this element has children.- Throws:
IOException
- if an error happens while writing to the stream.- Since:
- Ant 1.7
-
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 treeout
- where to send the outputindent
- number ofindentWith
- string that should be used to indent the corresponding tag.hasChildren
- if true indent.- Throws:
IOException
- if an error happens while writing to the stream.
-
encode
-
encodeAttributeValue
-
encodedata
Drop characters that are illegal in XML documents.Also ensure that we are not including an
]]>
marker by replacing that sequence with]]>
.See XML 1.0 2.2 https://www.w3.org/TR/1998/REC-xml-19980210#charsets and 2.7 https://www.w3.org/TR/1998/REC-xml-19980210#sec-cdata-sect.
- Parameters:
value
- the value to be encoded.- Returns:
- the encoded value.
-
encodedata
Drop characters that are illegal in XML documents and write the rest to the given writer.Also ensure that we are not including an
]]>
marker by replacing that sequence with]]>
.See XML 1.0 2.2 https://www.w3.org/TR/1998/REC-xml-19980210#charsets and 2.7 https://www.w3.org/TR/1998/REC-xml-19980210#sec-cdata-sect.
- Parameters:
out
- where to write the encoded data to.value
- the value to be encoded.- Throws:
IOException
- if data cannot be written
-
isReference
Is the given argument a character or entity reference?- Parameters:
ent
- the value to be checked.- Returns:
- true if it is an entity.
-
isLegalCharacter
public boolean isLegalCharacter(char c) Is the given character allowed inside an XML document?See XML 1.0 2.2 https://www.w3.org/TR/1998/REC-xml-19980210#charsets.
- Parameters:
c
- the character to test.- Returns:
- true if the character is allowed.
- Since:
- 1.10, Ant 1.5
-
isLegalXmlCharacter
public static boolean isLegalXmlCharacter(char c) Is the given character allowed inside an XML document?See XML 1.0 2.2 https://www.w3.org/TR/1998/REC-xml-19980210#charsets.
- Parameters:
c
- the character to test.- Returns:
- true if the character is allowed.
- Since:
- 1.10.10
-