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 |
---|---|
private Object |
builder |
private Object |
commentClosure Invoked by calling mkp.comment |
private Object |
declarationClosure Invoked by calling mkp.xmlDeclaration |
private Object |
encoding |
private boolean |
expandEmptyElements |
private Object |
noopClosure Invoked by calling mkp.yield . |
private Object |
pendingStack |
private Object |
piClosure Invoked by calling mkp.pi |
private Object |
tagClosure |
private Object |
unescapedClosure Invoked by calling mkp.yieldUnescaped . |
private boolean |
useDoubleQuotes |
Constructor and description |
---|
StreamingMarkupBuilder
() |
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-2020 The Apache Software Foundation. All rights reserved.