Top Description Inners Fields Constructors Methods
org.jdom2.output

public Class SAXOutputter

extends Object
Class Inheritance
Known Direct Subclasses
org.jdom2.transform.JDOMSource.DocumentReader
Static Imports
org.jdom2.JDOMConstants.*

Outputs a JDOM document as a stream of SAX2 events.

Most ContentHandler callbacks are supported. BOTH ignorableWhitespace() and skippedEntity() have not been implemented. The JDOMLocator class returned by getLocator exposes the current node being operated upon.

At this time, it is not possible to access notations and unparsed entity references in a DTD from JDOM. Therefore, DTDHandler callbacks have not been implemented yet.

The ErrorHandler callbacks have not been implemented, since these are supposed to be invoked when the document is parsed and at this point the document exists in memory and is known to have no errors.

Authors
Brett McLaughlin, Jason Hunter, Fred Trimble, Bradley S. Huffman

Nested and Inner Type Summary

Modifier and TypeClass and Description
private static class

Field Summary

Modifier and TypeField and Description
private ContentHandler
contentHandler

registered ContentHandler

private boolean
declareNamespaces

Whether to report attribute namespace declarations as xmlns attributes.

private DeclHandler
declHandler

registered DeclHandler

private static final SAXOutputProcessor
private DTDHandler
dtdHandler

registered DTDHandler

private EntityResolver
entityResolver

registered EntityResolver

private ErrorHandler
errorHandler

registered ErrorHandler

private Format
format

The Format to use for output.

private LexicalHandler
lexicalHandler

registered LexicalHandler

private SAXOutputProcessor
processor

A SAXOutputProcessor

private boolean
reportDtdEvents

Whether to report DTD events to DeclHandlers and LexicalHandlers.

Constructor Summary

AccessConstructor and Description
public
SAXOutputter()

This will create a SAXOutputter without any registered handler.

public
SAXOutputter(ContentHandler
contains ContentHandler callback methods
contentHandler
)

This will create a SAXOutputter with the specified ContentHandler.

public
SAXOutputter(ContentHandler
contains ContentHandler callback methods
contentHandler
,
ErrorHandler
contains ErrorHandler callback methods
errorHandler
,
DTDHandler
contains DTDHandler callback methods
dtdHandler
,
EntityResolver
contains EntityResolver callback methods
entityResolver
)

This will create a SAXOutputter with the specified SAX2 handlers.

public
SAXOutputter(ContentHandler
contains ContentHandler callback methods
contentHandler
,
ErrorHandler
contains ErrorHandler callback methods
errorHandler
,
DTDHandler
contains DTDHandler callback methods
dtdHandler
,
EntityResolver
contains EntityResolver callback methods
entityResolver
,
LexicalHandler
contains LexicalHandler callbacks.
lexicalHandler
)

This will create a SAXOutputter with the specified SAX2 handlers.

public
SAXOutputter(SAXOutputProcessor
the SAXOutputProcessor to use for output.
processor
,
Format
the Format to use for output.
format
,
ContentHandler
contains ContentHandler callback methods
contentHandler
,
ErrorHandler
contains ErrorHandler callback methods
errorHandler
,
DTDHandler
contains DTDHandler callback methods
dtdHandler
,
EntityResolver
contains EntityResolver callback methods
entityResolver
,
LexicalHandler
contains LexicalHandler callbacks.
lexicalHandler
)

This will create a SAXOutputter with the specified SAX2 handlers.

Method Summary

Modifier and TypeMethod and Description
private final SAXTarget
public ContentHandler

Returns:

the current ContentHandler or null if none was registered.
getContentHandler
()

Returns the registered ContentHandler.

public DeclHandler

Returns:

the current DeclHandler or null if none was registered.
getDeclHandler
()

Return the registered DeclHandler.

public DTDHandler

Returns:

the current DTDHandler or null if none was registered.
getDTDHandler
()

Return the registered DTDHandler.

public EntityResolver

Returns:

the current EntityResolver or null if none was registered.
getEntityResolver
()

Return the registered EntityResolver.

public ErrorHandler

Returns:

the current ErrorHandler or null if none was registered.
getErrorHandler
()

Return the registered ErrorHandler.

public boolean

Returns:

boolean the current state of the feature (true or false).
getFeature
(String
String the feature name, which is a fully-qualified URI.
name
)

This will look up the value of a SAX feature.

public Format

Returns:

the current Format
getFormat
()

Get the current Format being used for output

public LexicalHandler

Returns:

the current LexicalHandler or null if none was registered.
getLexicalHandler
()

Return the registered LexicalHandler.

public JDOMLocator

Returns:

null
getLocator
()

Deprecated there is no way to get a meaningful document Locator outside of an active output process, and the contents of the locator are meaningless outside of an active output process anyway.
Returns null.
public Object

Returns:

Object the current value of the property.
getProperty
(String
String the property name, which is a fully-qualified URI.
name
)

This will look up the value of a SAX property.

public boolean

Returns:

whether DTD events will be reported
getReportDTDEvents
()

Returns whether DTD events will be reported.

public boolean

Returns:

whether attribute namespace declarations shall be reported as "xmlns" attributes.
getReportNamespaceDeclarations
()

Returns whether attribute namespace declarations shall be reported as "xmlns" attributes.

public SAXOutputProcessor

Returns:

The current SAXOutputProcessor
getSAXOutputProcessor
()

Get the current SAXOutputProcessor being used for output.

private void
handleError(JDOMException
JDOMException containing the error information; will be wrapped in a SAXParseException when reported to the SAX error handler.
exception
)

Notifies the registered SAX error handler (if any) of an input processing error.

public void
output(Document
JDOM Document to output.
document
)

This will output the JDOM Document, firing off the SAX events that have been registered.

public void
output(List<? extends Content>
List of JDOM nodes to output.
nodes
)

This will output a list of JDOM nodes as a document, firing off the SAX events that have been registered.

public void
output(Element
the Element node to output.
node
)

This will output a single JDOM element as a document, firing off the SAX events that have been registered.

public void
outputFragment(List<? extends Content>
List of JDOM nodes to output.
nodes
)

This will output a list of JDOM nodes as a fragment of an XML document, firing off the SAX events that have been registered.

public void
outputFragment(Content
the Content node to output.
node
)

This will output a single JDOM nodes as a fragment of an XML document, firing off the SAX events that have been registered.

public void
setContentHandler(ContentHandler
contains ContentHandler callback methods.
contentHandler
)

This will set the ContentHandler.

public void
setDeclHandler(DeclHandler
contains declaration callback methods.
declHandler
)

This will set the DeclHandler.

public void
setDTDHandler(DTDHandler
contains DTDHandler callback methods.
dtdHandler
)

This will set the DTDHandler.

public void
setEntityResolver(EntityResolver
contains EntityResolver callback methods.
entityResolver
)

This will set the EntityResolver.

public void
setErrorHandler(ErrorHandler
contains ErrorHandler callback methods.
errorHandler
)

This will set the ErrorHandler.

public void
setFeature(String
String the feature name, which is a fully-qualified URI.
name
,
boolean
boolean the requested state of the feature (true or false).
value
)

This will set the state of a SAX feature.

public void
setFormat(Format
the new Format
format
)

Set the current Format to be used for output.

public void
setLexicalHandler(LexicalHandler
contains lexical callback methods.
lexicalHandler
)

This will set the LexicalHandler.

public void
setProperty(String
String the property name, which is a fully-qualified URI.
name
,
Object
Object the requested value for the property.
value
)

This will set the value of a SAX property.

public void
setReportDTDEvents(boolean
whether to notify DTD events.
reportDtdEvents
)

This will define whether to report DTD events to SAX DeclHandlers and LexicalHandlers if these handlers are registered and the document to output includes a DocType declaration.

public void
setReportNamespaceDeclarations(boolean
whether attribute namespace declarations shall be reported as "xmlns" attributes.
declareNamespaces
)

This will define whether attribute namespace declarations shall be reported as "xmlns" attributes.

public void
setSAXOutputProcessor(SAXOutputProcessor
the new SAXOutputProcessor
processor
)

Set the current SAXOutputProcessor to be used for output.

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

contentHandlerback to summary
private ContentHandler contentHandler

registered ContentHandler

declareNamespacesback to summary
private boolean declareNamespaces

Whether to report attribute namespace declarations as xmlns attributes. Defaults to false as per SAX specifications.

See Also
SAX namespace specifications
declHandlerback to summary
private DeclHandler declHandler

registered DeclHandler

DEFAULT_PROCESSORback to summary
private static final SAXOutputProcessor DEFAULT_PROCESSOR
dtdHandlerback to summary
private DTDHandler dtdHandler

registered DTDHandler

entityResolverback to summary
private EntityResolver entityResolver

registered EntityResolver

errorHandlerback to summary
private ErrorHandler errorHandler

registered ErrorHandler

formatback to summary
private Format format

The Format to use for output.

lexicalHandlerback to summary
private LexicalHandler lexicalHandler

registered LexicalHandler

processorback to summary
private SAXOutputProcessor processor

A SAXOutputProcessor

reportDtdEventsback to summary
private boolean reportDtdEvents

Whether to report DTD events to DeclHandlers and LexicalHandlers. Defaults to true.

Constructor Detail

SAXOutputterback to summary
public SAXOutputter()

This will create a SAXOutputter without any registered handler. The application is then responsible for registering them using the setXxxHandler() methods.

SAXOutputterback to summary
public SAXOutputter(ContentHandler contentHandler)

This will create a SAXOutputter with the specified ContentHandler.

Parameters
contentHandler:ContentHandler

contains ContentHandler callback methods

SAXOutputterback to summary
public SAXOutputter(ContentHandler contentHandler, ErrorHandler errorHandler, DTDHandler dtdHandler, EntityResolver entityResolver)

This will create a SAXOutputter with the specified SAX2 handlers. At this time, only ContentHandler and EntityResolver are supported.

Parameters
contentHandler:ContentHandler

contains ContentHandler callback methods

errorHandler:ErrorHandler

contains ErrorHandler callback methods

dtdHandler:DTDHandler

contains DTDHandler callback methods

entityResolver:EntityResolver

contains EntityResolver callback methods

SAXOutputterback to summary
public SAXOutputter(ContentHandler contentHandler, ErrorHandler errorHandler, DTDHandler dtdHandler, EntityResolver entityResolver, LexicalHandler lexicalHandler)

This will create a SAXOutputter with the specified SAX2 handlers. At this time, only ContentHandler and EntityResolver are supported.

Parameters
contentHandler:ContentHandler

contains ContentHandler callback methods

errorHandler:ErrorHandler

contains ErrorHandler callback methods

dtdHandler:DTDHandler

contains DTDHandler callback methods

entityResolver:EntityResolver

contains EntityResolver callback methods

lexicalHandler:LexicalHandler

contains LexicalHandler callbacks.

SAXOutputterback to summary
public SAXOutputter(SAXOutputProcessor processor, Format format, ContentHandler contentHandler, ErrorHandler errorHandler, DTDHandler dtdHandler, EntityResolver entityResolver, LexicalHandler lexicalHandler)

This will create a SAXOutputter with the specified SAX2 handlers. At this time, only ContentHandler and EntityResolver are supported.

Parameters
processor:SAXOutputProcessor

the SAXOutputProcessor to use for output.

format:Format

the Format to use for output.

contentHandler:ContentHandler

contains ContentHandler callback methods

errorHandler:ErrorHandler

contains ErrorHandler callback methods

dtdHandler:DTDHandler

contains DTDHandler callback methods

entityResolver:EntityResolver

contains EntityResolver callback methods

lexicalHandler:LexicalHandler

contains LexicalHandler callbacks.

Method Detail

buildTargetback to summary
private final SAXTarget buildTarget(Document doc)
getContentHandlerback to summary
public ContentHandler getContentHandler()

Returns the registered ContentHandler.

Returns:ContentHandler

the current ContentHandler or null if none was registered.

getDeclHandlerback to summary
public DeclHandler getDeclHandler()

Return the registered DeclHandler.

Returns:DeclHandler

the current DeclHandler or null if none was registered.

getDTDHandlerback to summary
public DTDHandler getDTDHandler()

Return the registered DTDHandler.

Returns:DTDHandler

the current DTDHandler or null if none was registered.

getEntityResolverback to summary
public EntityResolver getEntityResolver()

Return the registered EntityResolver.

Returns:EntityResolver

the current EntityResolver or null if none was registered.

getErrorHandlerback to summary
public ErrorHandler getErrorHandler()

Return the registered ErrorHandler.

Returns:ErrorHandler

the current ErrorHandler or null if none was registered.

getFeatureback to summary
public boolean getFeature(String name) throws SAXNotRecognizedException, SAXNotSupportedException

This will look up the value of a SAX feature.

Parameters
name:String

String the feature name, which is a fully-qualified URI.

Returns:boolean

boolean the current state of the feature (true or false).

Exceptions
SAXNotRecognizedException:
when SAXOutputter does not recognize the feature name.
SAXNotSupportedException:
when SAXOutputter recognizes the feature name but determine its value at this time.
getFormatback to summary
public Format getFormat()

Get the current Format being used for output

Returns:Format

the current Format

getLexicalHandlerback to summary
public LexicalHandler getLexicalHandler()

Return the registered LexicalHandler.

Returns:LexicalHandler

the current LexicalHandler or null if none was registered.

getLocatorback to summary
public JDOMLocator getLocator()

Deprecated

there is no way to get a meaningful document Locator outside of an active output process, and the contents of the locator are meaningless outside of an active output process anyway.

Returns null.

Returns:JDOMLocator

null

Annotations
@Deprecated
getPropertyback to summary
public Object getProperty(String name) throws SAXNotRecognizedException, SAXNotSupportedException

This will look up the value of a SAX property.

Parameters
name:String

String the property name, which is a fully-qualified URI.

Returns:Object

Object the current value of the property.

Exceptions
SAXNotRecognizedException:
when SAXOutputter does not recognize the property name.
SAXNotSupportedException:
when SAXOutputter recognizes the property name but cannot determine its value at this time.
getReportDTDEventsback to summary
public boolean getReportDTDEvents()

Returns whether DTD events will be reported.

Returns:boolean

whether DTD events will be reported

getReportNamespaceDeclarationsback to summary
public boolean getReportNamespaceDeclarations()

Returns whether attribute namespace declarations shall be reported as "xmlns" attributes.

Returns:boolean

whether attribute namespace declarations shall be reported as "xmlns" attributes.

getSAXOutputProcessorback to summary
public SAXOutputProcessor getSAXOutputProcessor()

Get the current SAXOutputProcessor being used for output.

Returns:SAXOutputProcessor

The current SAXOutputProcessor

handleErrorback to summary
private void handleError(JDOMException exception) throws JDOMException

Notifies the registered SAX error handler (if any) of an input processing error. The error handler can choose to absorb the error and let the processing continue.

Parameters
exception:JDOMException

JDOMException containing the error information; will be wrapped in a SAXParseException when reported to the SAX error handler.

Exceptions
JDOMException:
if no error handler has been registered or if the error handler fired a SAXException.
outputback to summary
public void output(Document document) throws JDOMException

This will output the JDOM Document, firing off the SAX events that have been registered.

Parameters
document:Document

JDOM Document to output.

Exceptions
JDOMException:
if any error occurred.
outputback to summary
public void output(List<? extends Content> nodes) throws JDOMException

This will output a list of JDOM nodes as a document, firing off the SAX events that have been registered.

Warning

This method may output ill-formed XML documents if the list contains top-level objects that are not legal at the document level (e.g. Text or CDATA nodes, multiple Element nodes, etc.). Thus, it should only be used to output document portions towards ContentHandlers capable of accepting such ill-formed documents (such as XSLT processors).

Parameters
nodes:List<? extends Content>

List of JDOM nodes to output.

Exceptions
JDOMException:
if any error occurred.
See Also
output(org.jdom2.Document)
outputback to summary
public void output(Element node) throws JDOMException

This will output a single JDOM element as a document, firing off the SAX events that have been registered.

Parameters
node:Element

the Element node to output.

Exceptions
JDOMException:
if any error occurred.
outputFragmentback to summary
public void outputFragment(List<? extends Content> nodes) throws JDOMException

This will output a list of JDOM nodes as a fragment of an XML document, firing off the SAX events that have been registered.

Warning

This method does not call the ContentHandler#setDocumentLocator, ContentHandler#startDocument and ContentHandler#endDocument callbacks on the ContentHandler. The user shall invoke these methods directly prior/after outputting the document fragments.

Parameters
nodes:List<? extends Content>

List of JDOM nodes to output.

Exceptions
JDOMException:
if any error occurred.
See Also
outputFragment(org.jdom2.Content)
outputFragmentback to summary
public void outputFragment(Content node) throws JDOMException

This will output a single JDOM nodes as a fragment of an XML document, firing off the SAX events that have been registered.

Warning

This method does not call the ContentHandler#setDocumentLocator, ContentHandler#startDocument and ContentHandler#endDocument callbacks on the ContentHandler. The user shall invoke these methods directly prior/after outputting the document fragments.

Parameters
node:Content

the Content node to output.

Exceptions
JDOMException:
if any error occurred.
See Also
outputFragment(java.util.List)
setContentHandlerback to summary
public void setContentHandler(ContentHandler contentHandler)

This will set the ContentHandler.

Parameters
contentHandler:ContentHandler

contains ContentHandler callback methods.

setDeclHandlerback to summary
public void setDeclHandler(DeclHandler declHandler)

This will set the DeclHandler.

Parameters
declHandler:DeclHandler

contains declaration callback methods.

setDTDHandlerback to summary
public void setDTDHandler(DTDHandler dtdHandler)

This will set the DTDHandler.

Parameters
dtdHandler:DTDHandler

contains DTDHandler callback methods.

setEntityResolverback to summary
public void setEntityResolver(EntityResolver entityResolver)

This will set the EntityResolver.

Parameters
entityResolver:EntityResolver

contains EntityResolver callback methods.

setErrorHandlerback to summary
public void setErrorHandler(ErrorHandler errorHandler)

This will set the ErrorHandler.

Parameters
errorHandler:ErrorHandler

contains ErrorHandler callback methods.

setFeatureback to summary
public void setFeature(String name, boolean value) throws SAXNotRecognizedException, SAXNotSupportedException

This will set the state of a SAX feature.

All XMLReaders are required to support setting to true and to false.

SAXOutputter currently supports the following SAX core features:

http://xml.org/sax/features/namespaces
description: true indicates namespace URIs and unprefixed local names for element and attribute names will be available
access: read/write, but always true!
http://xml.org/sax/features/namespace-prefixes
description: true indicates XML 1.0 names (with prefixes) and attributes (including xmlns* attributes) will be available
access: read/write
http://xml.org/sax/features/validation
description: controls whether SAXOutputter is reporting DTD-related events; if true, the DocType internal subset will be parsed to fire DTD events
access: read/write, defaults to true

Parameters
name:String

String the feature name, which is a fully-qualified URI.

value:boolean

boolean the requested state of the feature (true or false).

Exceptions
SAXNotRecognizedException:
when SAXOutputter does not recognize the feature name.
SAXNotSupportedException:
when SAXOutputter recognizes the feature name but cannot set the requested value.
setFormatback to summary
public void setFormat(Format format)

Set the current Format to be used for output.

Parameters
format:Format

the new Format

setLexicalHandlerback to summary
public void setLexicalHandler(LexicalHandler lexicalHandler)

This will set the LexicalHandler.

Parameters
lexicalHandler:LexicalHandler

contains lexical callback methods.

setPropertyback to summary
public void setProperty(String name, Object value) throws SAXNotRecognizedException, SAXNotSupportedException

This will set the value of a SAX property. This method is also the standard mechanism for setting extended handlers.

SAXOutputter currently supports the following SAX properties:

http://xml.org/sax/properties/lexical-handler
data type: org.xml.sax.ext.LexicalHandler
description: An optional extension handler for lexical events like comments.
access: read/write
http://xml.org/sax/properties/declaration-handler
data type: org.xml.sax.ext.DeclHandler
description: An optional extension handler for DTD-related events other than notations and unparsed entities.
access: read/write

Parameters
name:String

String the property name, which is a fully-qualified URI.

value:Object

Object the requested value for the property.

Exceptions
SAXNotRecognizedException:
when SAXOutputter does not recognize the property name.
SAXNotSupportedException:
when SAXOutputter recognizes the property name but cannot set the requested value.
setReportDTDEventsback to summary
public void setReportDTDEvents(boolean reportDtdEvents)

This will define whether to report DTD events to SAX DeclHandlers and LexicalHandlers if these handlers are registered and the document to output includes a DocType declaration.

Parameters
reportDtdEvents:boolean

whether to notify DTD events.

setReportNamespaceDeclarationsback to summary
public void setReportNamespaceDeclarations(boolean declareNamespaces)

This will define whether attribute namespace declarations shall be reported as "xmlns" attributes. This flag defaults to false and behaves as the "namespace-prefixes" SAX core feature.

Parameters
declareNamespaces:boolean

whether attribute namespace declarations shall be reported as "xmlns" attributes.

setSAXOutputProcessorback to summary
public void setSAXOutputProcessor(SAXOutputProcessor processor)

Set the current SAXOutputProcessor to be used for output.

Parameters
processor:SAXOutputProcessor

the new SAXOutputProcessor

org.jdom2.output back to summary

private final Class SAXOutputter.DefaultSAXOutputProcessor

extends AbstractSAXOutputProcessor
Class Inheritance

Constructor Summary

AccessConstructor and Description
private

Method Summary

Inherited from org.jdom2.output.support.AbstractSAXOutputProcessor:
createParserprintCDATAprintCommentprintContentprintDocTypeprintDocumentprintElementprintEntityRefprintProcessingInstructionprintTextprocessprocessprocessprocessprocessprocessprocessprocessprocessprocessAsDocumentprocessAsDocument

Constructor Detail

DefaultSAXOutputProcessorback to summary
private DefaultSAXOutputProcessor()