Package groovy.xml
Class MarkupBuilder
java.lang.Object
groovy.lang.GroovyObjectSupport
groovy.util.BuilderSupport
groovy.xml.MarkupBuilder
- All Implemented Interfaces:
- GroovyObject
A helper class for creating XML or HTML markup.
 The builder supports various 'pretty printed' formats.
 
Example:
 new MarkupBuilder().root {
   a( a1:'one' ) {
     b { mkp.yield( '3 < 5' ) }
     c( a2:'two', 'blah' )
   }
 }
 
 Will print the following to System.out:
 
 <root>
   <a a1='one'>
     <b>3 < 5</b>
     <c a2='two'>blah</c>
   </a>
 </root>
 
 Notes:
 - mkpis a special namespace used to escape away from the normal building mode of the builder and get access to helper markup methods such as 'yield' and 'yieldUnescaped'. See the javadoc for- getMkp()for further details.
- Note that tab, newline and carriage return characters are escaped within attributes, i.e. will become 	, 
 and 
 respectively
- 
Nested Class SummaryNested ClassesModifier and TypeClassDescriptionstatic enumstatic class
- 
Constructor SummaryConstructorsConstructorDescriptionPrints markup to System.outSends markup to the given IndentPrinter.Sends markup to the given PrintWriterMarkupBuilder(Writer writer) Sends markup to the given Writer but first wrapping it in a PrintWriter
- 
Method SummaryModifier and TypeMethodDescriptionprotected ObjectcreateNode(Object name) protected ObjectcreateNode(Object name, Object value) protected ObjectcreateNode(Object name, Map attributes) protected ObjectcreateNode(Object name, Map attributes, Object value) booleanReturnstrueif attribute values are output with double quotes;falseif single quotes are used.getMkp()Property that may be called from within your builder closure to access helper methods, namelyMarkupBuilderHelper.yield(String),MarkupBuilderHelper.yieldUnescaped(String),MarkupBuilderHelper.pi(Map),MarkupBuilderHelper.xmlDeclaration(Map)andMarkupBuilderHelper.comment(String).protected ObjectA hook to allow names to be converted into some other object such as a QName in XML or ObjectName in JMX.protected IndentPrinterbooleanReturns the escapeAttributes property value.booleanWhether empty elements are expanded from <tagName/> to <tagName></tagName>.booleanDetermine whether empty attributes will appear in the produced markup.booleanDetermine whether null attributes will appear in the produced markup.protected voidnodeCompleted(Object parent, Object node) A hook to allow nodes to be processed once they have had all of their children applied.protected voidvoidvoidsetDoubleQuotes(boolean useDoubleQuotes) Sets whether the builder outputs attribute values in double quotes or single quotes.voidsetEscapeAttributes(boolean escapeAttributes) Defaults to true. If set to false then you must escape any special characters within attribute values such as '&', '<', CR/LF, single and double quotes etc. manually as needed.voidsetExpandEmptyElements(boolean expandEmptyElements) Whether empty elements are expanded from <tagName/> to <tagName></tagName>.voidsetOmitEmptyAttributes(boolean omitEmptyAttributes) Allows empty attributes to be removed from the generated markup.voidsetOmitNullAttributes(boolean omitNullAttributes) Allows null attributes to be removed from the generated markup.protected voidMethods inherited from class groovy.util.BuilderSupportdoInvokeMethod, getCurrent, invokeMethod, invokeMethod, postNodeCompletion, setClosureDelegate, setCurrentMethods inherited from class groovy.lang.GroovyObjectSupportgetMetaClass, setMetaClassMethods inherited from class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface groovy.lang.GroovyObjectgetProperty, setProperty
- 
Constructor Details- 
MarkupBuilderpublic MarkupBuilder()Prints markup to System.out- See Also:
 
- 
MarkupBuilderSends markup to the given PrintWriter- Parameters:
- pw- the PrintWriter to use
- See Also:
 
- 
MarkupBuilderSends markup to the given Writer but first wrapping it in a PrintWriter- Parameters:
- writer- the writer to use
- See Also:
 
- 
MarkupBuilderSends markup to the given IndentPrinter. Use this option if you want to customize the indent used or provide your own IndentPrinter.- Parameters:
- out- the IndentPrinter to use
 
 
- 
- 
Method Details- 
getAdditionalFilters
- 
setAdditionalFilters
- 
isEscapeAttributespublic boolean isEscapeAttributes()Returns the escapeAttributes property value.- Returns:
- the escapeAttributes property value
- See Also:
 
- 
setEscapeAttributespublic void setEscapeAttributes(boolean escapeAttributes) Defaults to true. If set to false then you must escape any special characters within attribute values such as '&', '<', CR/LF, single and double quotes etc. manually as needed. The builder will not guard against producing invalid XML when in this mode and the output may not be able to be parsed/round-tripped but it does give you full control when producing for instance HTML output.- Parameters:
- escapeAttributes- the new value
 
- 
getDoubleQuotespublic boolean getDoubleQuotes()Returnstrueif attribute values are output with double quotes;falseif single quotes are used. By default, single quotes are used.- Returns:
- true if double quotes are used for attributes
 
- 
setDoubleQuotespublic void setDoubleQuotes(boolean useDoubleQuotes) Sets whether the builder outputs attribute values in double quotes or single quotes.- Parameters:
- useDoubleQuotes- If this parameter is- true, double quotes are used; otherwise, single quotes are.
 
- 
isOmitNullAttributespublic boolean isOmitNullAttributes()Determine whether null attributes will appear in the produced markup.- Returns:
- true, if null attributes will be removed from the resulting markup.
 
- 
setOmitNullAttributespublic void setOmitNullAttributes(boolean omitNullAttributes) Allows null attributes to be removed from the generated markup.- Parameters:
- omitNullAttributes- if- true, null attributes will not be included in the resulting markup. If- falsenull attributes will be included in the markup as empty strings regardless of the omitEmptyAttribute setting. Defaults to- false.
 
- 
isOmitEmptyAttributespublic boolean isOmitEmptyAttributes()Determine whether empty attributes will appear in the produced markup.- Returns:
- true, if empty attributes will be removed from the resulting markup.
 
- 
setOmitEmptyAttributespublic void setOmitEmptyAttributes(boolean omitEmptyAttributes) Allows empty attributes to be removed from the generated markup.- Parameters:
- omitEmptyAttributes- if- true, empty attributes will not be included in the resulting markup. Defaults to- false.
 
- 
isExpandEmptyElementspublic boolean isExpandEmptyElements()Whether empty elements are expanded from <tagName/> to <tagName></tagName>.- Returns:
- true, if empty elements will be represented by an opening tag followed immediately by a closing tag.
 
- 
setExpandEmptyElementspublic void setExpandEmptyElements(boolean expandEmptyElements) Whether empty elements are expanded from <tagName/> to <tagName></tagName>.- Parameters:
- expandEmptyElements- if- true, empty elements will be represented by an opening tag followed immediately by a closing tag. Defaults to- false.
 
- 
getPrinter
- 
setParent- Specified by:
- setParentin class- BuilderSupport
 
- 
getMkpProperty that may be called from within your builder closure to access helper methods, namelyMarkupBuilderHelper.yield(String),MarkupBuilderHelper.yieldUnescaped(String),MarkupBuilderHelper.pi(Map),MarkupBuilderHelper.xmlDeclaration(Map)andMarkupBuilderHelper.comment(String).- Returns:
- this MarkupBuilder
 
- 
createNode- Specified by:
- createNodein class- BuilderSupport
 
- 
createNode- Specified by:
- createNodein class- BuilderSupport
 
- 
createNode- Specified by:
- createNodein class- BuilderSupport
 
- 
createNode- Specified by:
- createNodein class- BuilderSupport
 
- 
nodeCompletedDescription copied from class:BuilderSupportA hook to allow nodes to be processed once they have had all of their children applied.- Overrides:
- nodeCompletedin class- BuilderSupport
- Parameters:
- parent- the parent of the node being processed
- node- the current node being processed
 
- 
print
- 
getNameDescription copied from class:BuilderSupportA hook to allow names to be converted into some other object such as a QName in XML or ObjectName in JMX.- Overrides:
- getNamein class- BuilderSupport
- Parameters:
- methodName- the name of the desired method
- Returns:
- the object representing the name
 
 
-