org.jdom.output
public class SAXOutputter extends Object
Most ContentHandler callbacks are supported. Both
ignorableWhitespace()
and skippedEntity()
have not
been implemented. The JDOMLocator
class returned by
SAXOutputter
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.
Version: $Revision: 1.37 $, $Date: 2004/09/03 06:11:00 $
Constructor Summary | |
---|---|
SAXOutputter()
This will create a SAXOutputter without any
registered handler. | |
SAXOutputter(ContentHandler contentHandler)
This will create a SAXOutputter with the
specified ContentHandler .
| |
SAXOutputter(ContentHandler contentHandler, ErrorHandler errorHandler, DTDHandler dtdHandler, EntityResolver entityResolver)
This will create a SAXOutputter with the
specified SAX2 handlers. | |
SAXOutputter(ContentHandler contentHandler, ErrorHandler errorHandler, DTDHandler dtdHandler, EntityResolver entityResolver, LexicalHandler lexicalHandler)
This will create a SAXOutputter with the
specified SAX2 handlers. |
Method Summary | |
---|---|
protected XMLReader | createParser() Creates a SAX XMLReader. |
ContentHandler | getContentHandler()
Returns the registered ContentHandler .
|
DeclHandler | getDeclHandler()
Return the registered DeclHandler .
|
DTDHandler | getDTDHandler()
Return the registered DTDHandler .
|
EntityResolver | getEntityResolver()
Return the registered EntityResolver .
|
ErrorHandler | getErrorHandler()
Return the registered ErrorHandler .
|
boolean | getFeature(String name)
This will look up the value of a SAX feature.
|
LexicalHandler | getLexicalHandler()
Return the registered LexicalHandler .
|
JDOMLocator | getLocator()
Returns a JDOMLocator object referencing the node currently
being processed by this outputter. |
Object | getProperty(String name)
This will look up the value of a SAX property.
|
boolean | getReportDTDEvents()
Returns whether DTD events will be reported.
|
boolean | getReportNamespaceDeclarations()
Returns whether attribute namespace declarations shall be reported as
"xmlns" attributes.
|
void | output(Document document)
This will output the JDOM Document , firing off the
SAX events that have been registered.
|
void | output(List nodes)
This will output a list of JDOM nodes as a document, firing
off the SAX events that have been registered.
|
void | output(Element node)
This will output a single JDOM element as a document, firing
off the SAX events that have been registered.
|
void | outputFragment(List 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.
|
void | outputFragment(Content node)
This will output a single JDOM nodes as a fragment of an XML
document, firing off the SAX events that have been registered.
|
void | setContentHandler(ContentHandler contentHandler)
This will set the ContentHandler .
|
void | setDeclHandler(DeclHandler declHandler)
This will set the DeclHandler .
|
void | setDTDHandler(DTDHandler dtdHandler)
This will set the DTDHandler .
|
void | setEntityResolver(EntityResolver entityResolver)
This will set the EntityResolver .
|
void | setErrorHandler(ErrorHandler errorHandler)
This will set the ErrorHandler .
|
void | setFeature(String name, boolean value)
This will set the state of a SAX feature.
|
void | setLexicalHandler(LexicalHandler lexicalHandler)
This will set the LexicalHandler .
|
void | setProperty(String name, Object value)
This will set the value of a SAX property.
|
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.
|
void | setReportNamespaceDeclarations(boolean declareNamespaces)
This will define whether attribute namespace declarations shall be
reported as "xmlns" attributes. |
SAXOutputter
without any
registered handler. The application is then responsible for
registering them using the setXxxHandler()
methods.SAXOutputter
with the
specified ContentHandler
.
Parameters: contentHandler contains ContentHandler
callback methods
SAXOutputter
with the
specified SAX2 handlers. At this time, only ContentHandler
and EntityResolver
are supported.
Parameters: contentHandler contains ContentHandler
callback methods errorHandler contains ErrorHandler
callback methods dtdHandler contains DTDHandler
callback methods entityResolver contains EntityResolver
callback methods
SAXOutputter
with the
specified SAX2 handlers. At this time, only ContentHandler
and EntityResolver
are supported.
Parameters: contentHandler contains ContentHandler
callback methods errorHandler contains ErrorHandler
callback methods dtdHandler contains DTDHandler
callback methods entityResolver contains EntityResolver
callback methods lexicalHandler contains LexicalHandler
callbacks.
Creates a SAX XMLReader.
Returns: XMLReader
a SAX2 parser.
Throws: Exception if no parser can be created.
ContentHandler
.
Returns: the current ContentHandler
or
null
if none was registered.
DeclHandler
.
Returns: the current DeclHandler
or
null
if none was registered.
DTDHandler
.
Returns: the current DTDHandler
or
null
if none was registered.
EntityResolver
.
Returns: the current EntityResolver
or
null
if none was registered.
ErrorHandler
.
Returns: the current ErrorHandler
or
null
if none was registered.
Parameters: name String
the feature name, which is a
fully-qualified URI.
Returns: boolean
the current state of the feature
(true or false).
Throws: SAXNotRecognizedException when SAXOutputter does not recognize the feature name. SAXNotSupportedException when SAXOutputter recognizes the feature name but determine its value at this time.
LexicalHandler
.
Returns: the current LexicalHandler
or
null
if none was registered.
This method allows direct access to the location information
maintained by SAXOutputter without requiring to implement
XMLFilter
. (In SAX, locators are only available
though the ContentHandler
interface).
Note that location information is only available while
SAXOutputter is outputting nodes. Hence this method should
only be used by objects taking part in the output processing
such as ErrorHandler
s.
Returns: a JDOMLocator object referencing the node currently
being processed or null
if no output
operation is being performed.
Parameters: name String
the property name, which is a
fully-qualified URI.
Returns: Object
the current value of the property.
Throws: SAXNotRecognizedException when SAXOutputter does not recognize the property name. SAXNotSupportedException when SAXOutputter recognizes the property name but cannot determine its value at this time.
Returns: whether DTD events will be reported
Returns: whether attribute namespace declarations shall be reported as "xmlns" attributes.
JDOM Document
, firing off the
SAX events that have been registered.
Parameters: document JDOM Document
to output.
Throws: JDOMException if any error occurred.
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
of JDOM nodes to output.
Throws: JDOMException if any error occurred.
See Also: output
Parameters: node the Element
node to output.
Throws: JDOMException if any error occurred.
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
of JDOM nodes to output.
Throws: JDOMException if any error occurred.
See Also: outputFragment
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 the Content
node to output.
Throws: JDOMException if any error occurred.
See Also: SAXOutputter
ContentHandler
.
Parameters: contentHandler contains ContentHandler
callback methods.
DeclHandler
.
Parameters: declHandler contains declaration callback methods.
DTDHandler
.
Parameters: dtdHandler contains DTDHandler
callback methods.
EntityResolver
.
Parameters: entityResolver contains EntityResolver callback methods.
ErrorHandler
.
Parameters: errorHandler contains ErrorHandler
callback methods.
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
true
indicates
namespace URIs and unprefixed local names for element and
attribute names will be availabletrue
!http://xml.org/sax/features/namespace-prefixes
true
indicates
XML 1.0 names (with prefixes) and attributes (including xmlns*
attributes) will be availablehttp://xml.org/sax/features/validation
true
, the
DocType internal subset will be parsed to fire DTD eventstrue
Parameters: name String
the feature name, which is a
fully-qualified URI. value boolean
the requested state of the
feature (true or false).
Throws: SAXNotRecognizedException when SAXOutputter does not recognize the feature name. SAXNotSupportedException when SAXOutputter recognizes the feature name but cannot set the requested value.
LexicalHandler
.
Parameters: lexicalHandler contains lexical callback methods.
SAXOutputter currently supports the following SAX properties:
http://xml.org/sax/properties/lexical-handler
org.xml.sax.ext.LexicalHandler
http://xml.org/sax/properties/declaration-handler
org.xml.sax.ext.DeclHandler
Parameters: name String
the property name, which is a
fully-qualified URI. value Object
the requested value for the property.
Throws: SAXNotRecognizedException when SAXOutputter does not recognize the property name. SAXNotSupportedException when SAXOutputter recognizes the property name but cannot set the requested value.
Parameters: reportDtdEvents whether to notify DTD events.
false
and behaves as the "namespace-prefixes" SAX core feature.
Parameters: declareNamespaces whether attribute namespace declarations shall be reported as "xmlns" attributes.