class StreamingMarkupBuilder extends AbstractStreamingBuilder
A builder class for creating XML markup. This implementation uses a StreamingMarkupWriter to handle output.
Example:
System.out << new StreamingMarkupBuilder().bind {
root {
a( a1:'one' ) {
b { mkp.yield( '3 < 5' ) }
c( a2:'two', 'blah' )
}
}
}
Will output the following String, without newlines or indentation:
<root>
<a a1='one'>
<b>3 < 5</b>
<c a2='two'>blah</c>
</a>
</root>
Notes:
mkp is a special namespace used to escape
away from the normal building mode of the builder and get access
to helper markup methods 'yield', 'pi', 'comment', 'out',
'namespaces', 'xmlDeclaration' and 'yieldUnescaped'.
| Type | Name and description |
|---|---|
Object |
builder |
Object |
commentClosureInvoked by calling mkp.comment |
Object |
declarationClosureInvoked by calling mkp.xmlDeclaration |
Object |
encoding |
boolean |
expandEmptyElements |
Object |
noopClosureInvoked by calling mkp.yield. |
Object |
pendingStack |
Object |
piClosureInvoked by calling mkp.pi |
Object |
tagClosure |
Object |
unescapedClosureInvoked by calling mkp.yieldUnescaped. |
boolean |
useDoubleQuotes |
| Properties inherited from class | Properties |
|---|---|
class AbstractStreamingBuilder |
aliasSetupClosure, badTagClosure, builder, getNamespaceClosure, namespaceSetupClosure, specialTags, toMapStringClosure |
| Constructor and description |
|---|
StreamingMarkupBuilder() |
Invoked by calling mkp.comment
Invoked by calling mkp.xmlDeclaration
Invoked by calling mkp.yield. Used to render text to the
output stream. Any XML reserved characters will be escaped to ensure
well-formedness.
Invoked by calling mkp.pi
Invoked by calling mkp.yieldUnescaped. Used to render
literal text or markup to the output stream. No escaping is done on the
output.
Returns a Writable object, which may be used to render the markup directly to a String, or send the output to a stream.
Examples:
// get the markup as a string:
new StreamingMarkupBuilder().bind { div { out << "hello world" } }.toString()
// send the output directly to a file:
new StreamingMarkupBuilder().bind { div { out << "hello world" } } \
.writeTo( new File('myFile.xml').newWriter() )
Convenience method for binding a single node.
The call bindNode(node) is equivalent to bind{ out << node }.
Returns a Writable object, which may be used to render
the markup directly to a String, or send the output to a stream.
Copyright © 2003-2024 The Apache Software Foundation. All rights reserved.