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 |
commentClosure Invoked by calling mkp.comment |
Object |
declarationClosure Invoked by calling mkp.xmlDeclaration |
Object |
encoding |
boolean |
expandEmptyElements |
Object |
noopClosure Invoked by calling mkp.yield . |
Object |
pendingStack |
Object |
piClosure Invoked by calling mkp.pi |
Object |
tagClosure |
Object |
unescapedClosure Invoked 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.