Package org.dom4j.io
Class SAXWriter
- java.lang.Object
-
- org.dom4j.io.SAXWriter
-
- All Implemented Interfaces:
org.xml.sax.XMLReader
public class SAXWriter extends java.lang.Object implements org.xml.sax.XMLReader
SAXWriter
writes a DOM4J tree to a SAX ContentHandler.
-
-
Field Summary
Fields Modifier and Type Field Description protected static java.lang.String
FEATURE_NAMESPACE_PREFIXES
protected static java.lang.String
FEATURE_NAMESPACES
protected static java.lang.String[]
LEXICAL_HANDLER_NAMES
-
Constructor Summary
Constructors Constructor Description SAXWriter()
SAXWriter(org.xml.sax.ContentHandler contentHandler)
SAXWriter(org.xml.sax.ContentHandler contentHandler, org.xml.sax.ext.LexicalHandler lexicalHandler)
SAXWriter(org.xml.sax.ContentHandler contentHandler, org.xml.sax.ext.LexicalHandler lexicalHandler, org.xml.sax.EntityResolver entityResolver)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected org.xml.sax.helpers.AttributesImpl
addNamespaceAttribute(org.xml.sax.helpers.AttributesImpl attrs, Namespace namespace)
If isDelcareNamespaceAttributes() is enabled then this method will add the given namespace declaration to the supplied attributes object, creating one if it does not exist.protected org.xml.sax.Attributes
createAttributes(Element element, org.xml.sax.Attributes namespaceAttributes)
protected void
documentLocator(Document document)
TheLocator
is only really useful when parsing a textual document as its main purpose is to identify the line and column number.protected void
dtdHandler(Document document)
We do not yet support DTD or XML Schemas so this method does nothing right now.protected void
endDocument()
protected void
endElement(Element element)
protected void
endPrefixMapping(NamespaceStack stack, int stackSize)
Fires a SAX endPrefixMapping event for all the namespaceStack which have gone out of scopeprotected void
entityResolver(Document document)
org.xml.sax.ContentHandler
getContentHandler()
DOCUMENT ME!org.xml.sax.DTDHandler
getDTDHandler()
DOCUMENT ME!org.xml.sax.EntityResolver
getEntityResolver()
DOCUMENT ME!org.xml.sax.ErrorHandler
getErrorHandler()
DOCUMENT ME!boolean
getFeature(java.lang.String name)
Looks up the value of a feature.org.xml.sax.ext.LexicalHandler
getLexicalHandler()
DOCUMENT ME!java.lang.Object
getProperty(java.lang.String name)
Gets the given SAX propertyprotected void
checkForNullHandlers()
Ensures non-null content handlers?boolean
isDeclareNamespaceAttributes()
Should namespace declarations be converted to "xmlns" attributes.protected boolean
isIgnoreableNamespace(Namespace namespace, NamespaceStack namespaceStack)
DOCUMENT ME!void
parse(java.lang.String systemId)
This method is not supported.void
parse(org.xml.sax.InputSource input)
Parses an XML document.void
setContentHandler(org.xml.sax.ContentHandler contentHandler)
Sets theContentHandler
called when SAX events are raisedvoid
setDeclareNamespaceAttributes(boolean declareNamespaceAttrs)
Sets whether namespace declarations should be exported as "xmlns" attributes or not.void
setDTDHandler(org.xml.sax.DTDHandler handler)
Sets theDTDHandler
.void
setEntityResolver(org.xml.sax.EntityResolver entityResolver)
Sets theEntityResolver
.void
setErrorHandler(org.xml.sax.ErrorHandler errorHandler)
Sets theErrorHandler
.void
setFeature(java.lang.String name, boolean value)
This implementation does actually use any features but just stores them for later retrievalvoid
setLexicalHandler(org.xml.sax.ext.LexicalHandler lexicalHandler)
Sets theLexicalHandler
.void
setProperty(java.lang.String name, java.lang.Object value)
Sets the given SAX propertyvoid
setXMLReader(org.xml.sax.XMLReader xmlReader)
Sets theXMLReader
used to write SAX events toprotected void
startDocument()
protected void
startElement(Element element, org.xml.sax.helpers.AttributesImpl namespaceAttributes)
protected org.xml.sax.helpers.AttributesImpl
startPrefixMapping(Element element, NamespaceStack namespaceStack)
Fires a SAX startPrefixMapping event for all the namespaceStack which have just come into scopevoid
write(java.lang.String text)
Generates SAX events for the given textvoid
write(CDATA cdata)
Generates SAX events for the given CDATAvoid
write(Comment comment)
Generates SAX events for the given Commentvoid
write(Document document)
Generates SAX events for the given Document and all its contentvoid
write(Element element)
Generates SAX events for the given Element and all its contentprotected void
write(Element element, NamespaceStack namespaceStack)
void
write(Entity entity)
Generates SAX events for the given Entityvoid
write(Node node)
A polymorphic method to write any Node to this SAX streamvoid
write(ProcessingInstruction pi)
Generates SAX events for the given ProcessingInstructionvoid
writeClose(Element element)
Writes the closing tag of anElement
protected void
writeContent(Branch branch, NamespaceStack namespaceStack)
void
writeOpen(Element element)
-
-
-
Field Detail
-
LEXICAL_HANDLER_NAMES
protected static final java.lang.String[] LEXICAL_HANDLER_NAMES
-
FEATURE_NAMESPACE_PREFIXES
protected static final java.lang.String FEATURE_NAMESPACE_PREFIXES
- See Also:
- Constant Field Values
-
FEATURE_NAMESPACES
protected static final java.lang.String FEATURE_NAMESPACES
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
SAXWriter
public SAXWriter()
-
SAXWriter
public SAXWriter(org.xml.sax.ContentHandler contentHandler)
-
SAXWriter
public SAXWriter(org.xml.sax.ContentHandler contentHandler, org.xml.sax.ext.LexicalHandler lexicalHandler)
-
SAXWriter
public SAXWriter(org.xml.sax.ContentHandler contentHandler, org.xml.sax.ext.LexicalHandler lexicalHandler, org.xml.sax.EntityResolver entityResolver)
-
-
Method Detail
-
write
public void write(Node node) throws org.xml.sax.SAXException
A polymorphic method to write any Node to this SAX stream- Parameters:
node
- DOCUMENT ME!- Throws:
org.xml.sax.SAXException
- DOCUMENT ME!
-
write
public void write(Document document) throws org.xml.sax.SAXException
Generates SAX events for the given Document and all its content- Parameters:
document
- is the Document to parse- Throws:
org.xml.sax.SAXException
- if there is a SAX error processing the events
-
write
public void write(Element element) throws org.xml.sax.SAXException
Generates SAX events for the given Element and all its content- Parameters:
element
- is the Element to parse- Throws:
org.xml.sax.SAXException
- if there is a SAX error processing the events
-
writeOpen
public void writeOpen(Element element) throws org.xml.sax.SAXException
- Parameters:
element
-Element
to output.- Throws:
org.xml.sax.SAXException
- DOCUMENT ME!
-
writeClose
public void writeClose(Element element) throws org.xml.sax.SAXException
Writes the closing tag of an
Element
- Parameters:
element
-Element
to output.- Throws:
org.xml.sax.SAXException
- DOCUMENT ME!
-
write
public void write(java.lang.String text) throws org.xml.sax.SAXException
Generates SAX events for the given text- Parameters:
text
- is the text to send to the SAX ContentHandler- Throws:
org.xml.sax.SAXException
- if there is a SAX error processing the events
-
write
public void write(CDATA cdata) throws org.xml.sax.SAXException
Generates SAX events for the given CDATA- Parameters:
cdata
- is the CDATA to parse- Throws:
org.xml.sax.SAXException
- if there is a SAX error processing the events
-
write
public void write(Comment comment) throws org.xml.sax.SAXException
Generates SAX events for the given Comment- Parameters:
comment
- is the Comment to parse- Throws:
org.xml.sax.SAXException
- if there is a SAX error processing the events
-
write
public void write(Entity entity) throws org.xml.sax.SAXException
Generates SAX events for the given Entity- Parameters:
entity
- is the Entity to parse- Throws:
org.xml.sax.SAXException
- if there is a SAX error processing the events
-
write
public void write(ProcessingInstruction pi) throws org.xml.sax.SAXException
Generates SAX events for the given ProcessingInstruction- Parameters:
pi
- is the ProcessingInstruction to parse- Throws:
org.xml.sax.SAXException
- if there is a SAX error processing the events
-
isDeclareNamespaceAttributes
public boolean isDeclareNamespaceAttributes()
Should namespace declarations be converted to "xmlns" attributes. This property defaults tofalse
as per the SAX specification. This property is set via the SAX feature "http://xml.org/sax/features/namespace-prefixes"- Returns:
- DOCUMENT ME!
-
setDeclareNamespaceAttributes
public void setDeclareNamespaceAttributes(boolean declareNamespaceAttrs)
Sets whether namespace declarations should be exported as "xmlns" attributes or not. This property is set from the SAX feature "http://xml.org/sax/features/namespace-prefixes"- Parameters:
declareNamespaceAttrs
- DOCUMENT ME!
-
getContentHandler
public org.xml.sax.ContentHandler getContentHandler()
DOCUMENT ME!- Specified by:
getContentHandler
in interfaceorg.xml.sax.XMLReader
- Returns:
- the
ContentHandler
called when SAX events are raised
-
setContentHandler
public void setContentHandler(org.xml.sax.ContentHandler contentHandler)
Sets theContentHandler
called when SAX events are raised- Specified by:
setContentHandler
in interfaceorg.xml.sax.XMLReader
- Parameters:
contentHandler
- is theContentHandler
called when SAX events are raised
-
getDTDHandler
public org.xml.sax.DTDHandler getDTDHandler()
DOCUMENT ME!- Specified by:
getDTDHandler
in interfaceorg.xml.sax.XMLReader
- Returns:
- the
DTDHandler
-
setDTDHandler
public void setDTDHandler(org.xml.sax.DTDHandler handler)
Sets theDTDHandler
.- Specified by:
setDTDHandler
in interfaceorg.xml.sax.XMLReader
- Parameters:
handler
- DOCUMENT ME!
-
getErrorHandler
public org.xml.sax.ErrorHandler getErrorHandler()
DOCUMENT ME!- Specified by:
getErrorHandler
in interfaceorg.xml.sax.XMLReader
- Returns:
- the
ErrorHandler
-
setErrorHandler
public void setErrorHandler(org.xml.sax.ErrorHandler errorHandler)
Sets theErrorHandler
.- Specified by:
setErrorHandler
in interfaceorg.xml.sax.XMLReader
- Parameters:
errorHandler
- DOCUMENT ME!
-
getEntityResolver
public org.xml.sax.EntityResolver getEntityResolver()
DOCUMENT ME!- Specified by:
getEntityResolver
in interfaceorg.xml.sax.XMLReader
- Returns:
- the
EntityResolver
used when a Document contains a DTD
-
setEntityResolver
public void setEntityResolver(org.xml.sax.EntityResolver entityResolver)
Sets theEntityResolver
.- Specified by:
setEntityResolver
in interfaceorg.xml.sax.XMLReader
- Parameters:
entityResolver
- is theEntityResolver
-
getLexicalHandler
public org.xml.sax.ext.LexicalHandler getLexicalHandler()
DOCUMENT ME!- Returns:
- the
LexicalHandler
used when a Document contains a DTD
-
setLexicalHandler
public void setLexicalHandler(org.xml.sax.ext.LexicalHandler lexicalHandler)
Sets theLexicalHandler
.- Parameters:
lexicalHandler
- is theLexicalHandler
-
setXMLReader
public void setXMLReader(org.xml.sax.XMLReader xmlReader)
Sets theXMLReader
used to write SAX events to- Parameters:
xmlReader
- is theXMLReader
-
getFeature
public boolean getFeature(java.lang.String name) throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException
Looks up the value of a feature.- Specified by:
getFeature
in interfaceorg.xml.sax.XMLReader
- Parameters:
name
- DOCUMENT ME!- Returns:
- DOCUMENT ME!
- Throws:
org.xml.sax.SAXNotRecognizedException
- DOCUMENT ME!org.xml.sax.SAXNotSupportedException
- DOCUMENT ME!
-
setFeature
public void setFeature(java.lang.String name, boolean value) throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException
This implementation does actually use any features but just stores them for later retrieval- Specified by:
setFeature
in interfaceorg.xml.sax.XMLReader
- Parameters:
name
- DOCUMENT ME!value
- DOCUMENT ME!- Throws:
org.xml.sax.SAXNotRecognizedException
- DOCUMENT ME!org.xml.sax.SAXNotSupportedException
- DOCUMENT ME!
-
setProperty
public void setProperty(java.lang.String name, java.lang.Object value)
Sets the given SAX property- Specified by:
setProperty
in interfaceorg.xml.sax.XMLReader
- Parameters:
name
- DOCUMENT ME!value
- DOCUMENT ME!
-
getProperty
public java.lang.Object getProperty(java.lang.String name) throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException
Gets the given SAX property- Specified by:
getProperty
in interfaceorg.xml.sax.XMLReader
- Parameters:
name
- DOCUMENT ME!- Returns:
- DOCUMENT ME!
- Throws:
org.xml.sax.SAXNotRecognizedException
- DOCUMENT ME!org.xml.sax.SAXNotSupportedException
- DOCUMENT ME!
-
parse
public void parse(java.lang.String systemId) throws org.xml.sax.SAXNotSupportedException
This method is not supported.- Specified by:
parse
in interfaceorg.xml.sax.XMLReader
- Parameters:
systemId
- DOCUMENT ME!- Throws:
org.xml.sax.SAXNotSupportedException
- DOCUMENT ME!
-
parse
public void parse(org.xml.sax.InputSource input) throws org.xml.sax.SAXException
Parses an XML document. This method can only accept DocumentInputSource inputs otherwise aSAXNotSupportedException
exception is thrown.- Specified by:
parse
in interfaceorg.xml.sax.XMLReader
- Parameters:
input
- DOCUMENT ME!- Throws:
org.xml.sax.SAXException
- DOCUMENT ME!org.xml.sax.SAXNotSupportedException
- if the input source is not wrapping a dom4j document
-
writeContent
protected void writeContent(Branch branch, NamespaceStack namespaceStack) throws org.xml.sax.SAXException
- Throws:
org.xml.sax.SAXException
-
documentLocator
protected void documentLocator(Document document) throws org.xml.sax.SAXException
TheLocator
is only really useful when parsing a textual document as its main purpose is to identify the line and column number. Since we are processing an in memory tree which will probably have its line number information removed, we'll just use -1 for the line and column numbers.- Parameters:
document
- DOCUMENT ME!- Throws:
org.xml.sax.SAXException
- DOCUMENT ME!
-
entityResolver
protected void entityResolver(Document document) throws org.xml.sax.SAXException
- Throws:
org.xml.sax.SAXException
-
dtdHandler
protected void dtdHandler(Document document) throws org.xml.sax.SAXException
We do not yet support DTD or XML Schemas so this method does nothing right now.- Parameters:
document
- DOCUMENT ME!- Throws:
org.xml.sax.SAXException
- DOCUMENT ME!
-
startDocument
protected void startDocument() throws org.xml.sax.SAXException
- Throws:
org.xml.sax.SAXException
-
endDocument
protected void endDocument() throws org.xml.sax.SAXException
- Throws:
org.xml.sax.SAXException
-
write
protected void write(Element element, NamespaceStack namespaceStack) throws org.xml.sax.SAXException
- Throws:
org.xml.sax.SAXException
-
startPrefixMapping
protected org.xml.sax.helpers.AttributesImpl startPrefixMapping(Element element, NamespaceStack namespaceStack) throws org.xml.sax.SAXException
Fires a SAX startPrefixMapping event for all the namespaceStack which have just come into scope- Parameters:
element
- DOCUMENT ME!namespaceStack
- DOCUMENT ME!- Returns:
- DOCUMENT ME!
- Throws:
org.xml.sax.SAXException
- DOCUMENT ME!
-
endPrefixMapping
protected void endPrefixMapping(NamespaceStack stack, int stackSize) throws org.xml.sax.SAXException
Fires a SAX endPrefixMapping event for all the namespaceStack which have gone out of scope- Parameters:
stack
- DOCUMENT ME!stackSize
- DOCUMENT ME!- Throws:
org.xml.sax.SAXException
- DOCUMENT ME!
-
startElement
protected void startElement(Element element, org.xml.sax.helpers.AttributesImpl namespaceAttributes) throws org.xml.sax.SAXException
- Throws:
org.xml.sax.SAXException
-
endElement
protected void endElement(Element element) throws org.xml.sax.SAXException
- Throws:
org.xml.sax.SAXException
-
createAttributes
protected org.xml.sax.Attributes createAttributes(Element element, org.xml.sax.Attributes namespaceAttributes) throws org.xml.sax.SAXException
- Throws:
org.xml.sax.SAXException
-
addNamespaceAttribute
protected org.xml.sax.helpers.AttributesImpl addNamespaceAttribute(org.xml.sax.helpers.AttributesImpl attrs, Namespace namespace)
If isDelcareNamespaceAttributes() is enabled then this method will add the given namespace declaration to the supplied attributes object, creating one if it does not exist.- Parameters:
attrs
- DOCUMENT ME!namespace
- DOCUMENT ME!- Returns:
- DOCUMENT ME!
-
isIgnoreableNamespace
protected boolean isIgnoreableNamespace(Namespace namespace, NamespaceStack namespaceStack)
DOCUMENT ME!- Parameters:
namespace
- DOCUMENT ME!namespaceStack
- DOCUMENT ME!- Returns:
- true if the given namespace is an ignorable namespace (such as Namespace.NO_NAMESPACE or Namespace.XML_NAMESPACE) or if the namespace has already been declared in the current scope
-
checkForNullHandlers
protected void checkForNullHandlers()
Ensures non-null content handlers?
-
-