org.dom4j.io

Class SAXContentHandler

public class SAXContentHandler extends DefaultHandler implements LexicalHandler, DeclHandler, DTDHandler

SAXContentHandler builds a dom4j tree via SAX events.

Version: $Revision: 1.61 $

Author: James Strachan

Constructor Summary
SAXContentHandler()
SAXContentHandler(DocumentFactory documentFactory)
SAXContentHandler(DocumentFactory documentFactory, ElementHandler elementHandler)
SAXContentHandler(DocumentFactory documentFactory, ElementHandler elementHandler, ElementStack elementStack)
Method Summary
protected voidaddAttributes(Element element, Attributes attributes)
Add all the attributes to the given elements
protected voidaddDeclaredNamespaces(Element element)
Add all namespaces declared before the startElement() SAX event to the current element so that they are available to child elements and attributes
protected voidaddDTDDeclaration(Object declaration)
Adds an internal DTD declaration to the list of declarations
protected voidaddExternalDTDDeclaration(Object declaration)
Adds an external DTD declaration to the list of declarations
voidattributeDecl(String eName, String aName, String type, String valueDefault, String val)
Report an attribute type declaration.
voidcharacters(char[] ch, int start, int end)
voidcomment(char[] ch, int start, int end)
protected voidcompleteCurrentTextNode()
If the current text buffer contains any text then create a new text node with it and add it to the current element
protected DocumentcreateDocument()
DOCUMENT ME!
protected ElementStackcreateElementStack()
voidelementDecl(String name, String model)
Report an element type declaration.
voidendCDATA()
voidendDocument()
voidendDTD()
voidendElement(String namespaceURI, String localName, String qName)
voidendEntity(String name)
voidendPrefixMapping(String prefix)
voiderror(SAXParseException exception)
This method is called when an error is detected during parsing such as a validation error.
voidexternalEntityDecl(String name, String publicId, String sysId)
Report a parsed external entity declaration.
voidfatalError(SAXParseException exception)
This method is called when a fatal error occurs during parsing.
DocumentgetDocument()
DOCUMENT ME!
ElementStackgetElementStack()
EntityResolvergetEntityResolver()
InputSourcegetInputSource()
voidinternalEntityDecl(String name, String value)
Report an internal entity declaration.
protected booleanisIgnorableEntity(String name)
a Strategy Method to determine if a given entity name is ignorable
booleanisIgnoreComments()
Returns whether we should ignore comments or not.
booleanisIncludeExternalDTDDeclarations()
DOCUMENT ME!
booleanisIncludeInternalDTDDeclarations()
DOCUMENT ME!
booleanisMergeAdjacentText()
Returns whether adjacent text nodes should be merged together.
booleanisStripWhitespaceText()
Sets whether whitespace between element start and end tags should be ignored
voidnotationDecl(String name, String publicId, String systemId)
Receive notification of a notation declaration event.
voidprocessingInstruction(String target, String data)
voidsetDocumentLocator(Locator documentLocator)
voidsetElementStack(ElementStack elementStack)
voidsetEntityResolver(EntityResolver entityResolver)
voidsetIgnoreComments(boolean ignoreComments)
Sets whether we should ignore comments or not.
voidsetIncludeExternalDTDDeclarations(boolean include)
Sets whether DTD external declarations should be expanded into the DocumentType object or not.
voidsetIncludeInternalDTDDeclarations(boolean include)
Sets whether internal DTD declarations should be expanded into the DocumentType object or not.
voidsetInputSource(InputSource inputSource)
voidsetMergeAdjacentText(boolean mergeAdjacentText)
Sets whether or not adjacent text nodes should be merged together when parsing.
voidsetStripWhitespaceText(boolean stripWhitespaceText)
Sets whether whitespace between element start and end tags should be ignored.
voidstartCDATA()
voidstartDocument()
voidstartDTD(String name, String publicId, String systemId)
voidstartElement(String namespaceURI, String localName, String qualifiedName, Attributes attributes)
voidstartEntity(String name)
voidstartPrefixMapping(String prefix, String uri)
voidunparsedEntityDecl(String name, String publicId, String systemId, String notationName)
Receive notification of an unparsed entity declaration event.
voidwarning(SAXParseException exception)
This method is called when a warning occurs during the parsing of the document.

Constructor Detail

SAXContentHandler

public SAXContentHandler()

SAXContentHandler

public SAXContentHandler(DocumentFactory documentFactory)

SAXContentHandler

public SAXContentHandler(DocumentFactory documentFactory, ElementHandler elementHandler)

SAXContentHandler

public SAXContentHandler(DocumentFactory documentFactory, ElementHandler elementHandler, ElementStack elementStack)

Method Detail

addAttributes

protected void addAttributes(Element element, Attributes attributes)
Add all the attributes to the given elements

Parameters: element DOCUMENT ME! attributes DOCUMENT ME!

addDeclaredNamespaces

protected void addDeclaredNamespaces(Element element)
Add all namespaces declared before the startElement() SAX event to the current element so that they are available to child elements and attributes

Parameters: element DOCUMENT ME!

addDTDDeclaration

protected void addDTDDeclaration(Object declaration)
Adds an internal DTD declaration to the list of declarations

Parameters: declaration DOCUMENT ME!

addExternalDTDDeclaration

protected void addExternalDTDDeclaration(Object declaration)
Adds an external DTD declaration to the list of declarations

Parameters: declaration DOCUMENT ME!

attributeDecl

public void attributeDecl(String eName, String aName, String type, String valueDefault, String val)
Report an attribute type declaration.

Only the effective (first) declaration for an attribute will be reported. The type will be one of the strings "CDATA", "ID", "IDREF", "IDREFS", "NMTOKEN", "NMTOKENS", "ENTITY", "ENTITIES", a parenthesized token group with the separator "|" and all whitespace removed, or the word "NOTATION" followed by a space followed by a parenthesized token group with all whitespace removed.

Any parameter entities in the attribute value will be expanded, but general entities will not.

Parameters: eName The name of the associated element. aName The name of the attribute. type A string representing the attribute type. valueDefault A string representing the attribute default ("#IMPLIED", "#REQUIRED", or "#FIXED") or null if none of these applies. val A string representing the attribute's default value, or null if there is none.

Throws: SAXException The application may raise an exception.

characters

public void characters(char[] ch, int start, int end)

comment

public void comment(char[] ch, int start, int end)

completeCurrentTextNode

protected void completeCurrentTextNode()
If the current text buffer contains any text then create a new text node with it and add it to the current element

createDocument

protected Document createDocument()
DOCUMENT ME!

Returns: the current document

createElementStack

protected ElementStack createElementStack()

elementDecl

public void elementDecl(String name, String model)
Report an element type declaration.

The content model will consist of the string "EMPTY", the string "ANY", or a parenthesised group, optionally followed by an occurrence indicator. The model will be normalized so that all parameter entities are fully resolved and all whitespace is removed,and will include the enclosing parentheses. Other normalization (such as removing redundant parentheses or simplifying occurrence indicators) is at the discretion of the parser.

Parameters: name The element type name. model The content model as a normalized string.

Throws: SAXException The application may raise an exception.

endCDATA

public void endCDATA()

endDocument

public void endDocument()

endDTD

public void endDTD()

endElement

public void endElement(String namespaceURI, String localName, String qName)

endEntity

public void endEntity(String name)

endPrefixMapping

public void endPrefixMapping(String prefix)

error

public void error(SAXParseException exception)
This method is called when an error is detected during parsing such as a validation error. This method rethrows the exception

Parameters: exception DOCUMENT ME!

Throws: SAXException DOCUMENT ME!

externalEntityDecl

public void externalEntityDecl(String name, String publicId, String sysId)
Report a parsed external entity declaration.

Only the effective (first) declaration for each entity will be reported.

Parameters: name The name of the entity. If it is a parameter entity, the name will begin with '%'. publicId The declared public identifier of the entity, or null if none was declared. sysId The declared system identifier of the entity.

Throws: SAXException The application may raise an exception.

See Also: SAXContentHandler org.xml.sax.DTDHandler#unparsedEntityDecl

fatalError

public void fatalError(SAXParseException exception)
This method is called when a fatal error occurs during parsing. This method rethrows the exception

Parameters: exception DOCUMENT ME!

Throws: SAXException DOCUMENT ME!

getDocument

public Document getDocument()
DOCUMENT ME!

Returns: the document that has been or is being built

getElementStack

public ElementStack getElementStack()

getEntityResolver

public EntityResolver getEntityResolver()

getInputSource

public InputSource getInputSource()

internalEntityDecl

public void internalEntityDecl(String name, String value)
Report an internal entity declaration.

Only the effective (first) declaration for each entity will be reported. All parameter entities in the value will be expanded, but general entities will not.

Parameters: name The name of the entity. If it is a parameter entity, the name will begin with '%'. value The replacement text of the entity.

Throws: SAXException The application may raise an exception.

See Also: SAXContentHandler org.xml.sax.DTDHandler#unparsedEntityDecl

isIgnorableEntity

protected boolean isIgnorableEntity(String name)
a Strategy Method to determine if a given entity name is ignorable

Parameters: name DOCUMENT ME!

Returns: DOCUMENT ME!

isIgnoreComments

public boolean isIgnoreComments()
Returns whether we should ignore comments or not.

Returns: boolean

isIncludeExternalDTDDeclarations

public boolean isIncludeExternalDTDDeclarations()
DOCUMENT ME!

Returns: whether external DTD declarations should be expanded into the DocumentType object or not.

isIncludeInternalDTDDeclarations

public boolean isIncludeInternalDTDDeclarations()
DOCUMENT ME!

Returns: whether internal DTD declarations should be expanded into the DocumentType object or not.

isMergeAdjacentText

public boolean isMergeAdjacentText()
Returns whether adjacent text nodes should be merged together.

Returns: Value of property mergeAdjacentText.

isStripWhitespaceText

public boolean isStripWhitespaceText()
Sets whether whitespace between element start and end tags should be ignored

Returns: Value of property stripWhitespaceText.

notationDecl

public void notationDecl(String name, String publicId, String systemId)
Receive notification of a notation declaration event.

It is up to the application to record the notation for later reference, if necessary.

At least one of publicId and systemId must be non-null. If a system identifier is present, and it is a URL, the SAX parser must resolve it fully before passing it to the application through this event.

There is no guarantee that the notation declaration will be reported before any unparsed entities that use it.

Parameters: name The notation name. publicId The notation's public identifier, or null if none was given. systemId The notation's system identifier, or null if none was given.

Throws: SAXException Any SAX exception, possibly wrapping another exception.

See Also: SAXContentHandler org.xml.sax.AttributeList

processingInstruction

public void processingInstruction(String target, String data)

setDocumentLocator

public void setDocumentLocator(Locator documentLocator)

setElementStack

public void setElementStack(ElementStack elementStack)

setEntityResolver

public void setEntityResolver(EntityResolver entityResolver)

setIgnoreComments

public void setIgnoreComments(boolean ignoreComments)
Sets whether we should ignore comments or not.

Parameters: ignoreComments whether we should ignore comments or not.

setIncludeExternalDTDDeclarations

public void setIncludeExternalDTDDeclarations(boolean include)
Sets whether DTD external declarations should be expanded into the DocumentType object or not.

Parameters: include whether or not DTD declarations should be expanded and included into the DocumentType object.

setIncludeInternalDTDDeclarations

public void setIncludeInternalDTDDeclarations(boolean include)
Sets whether internal DTD declarations should be expanded into the DocumentType object or not.

Parameters: include whether or not DTD declarations should be expanded and included into the DocumentType object.

setInputSource

public void setInputSource(InputSource inputSource)

setMergeAdjacentText

public void setMergeAdjacentText(boolean mergeAdjacentText)
Sets whether or not adjacent text nodes should be merged together when parsing.

Parameters: mergeAdjacentText New value of property mergeAdjacentText.

setStripWhitespaceText

public void setStripWhitespaceText(boolean stripWhitespaceText)
Sets whether whitespace between element start and end tags should be ignored.

Parameters: stripWhitespaceText New value of property stripWhitespaceText.

startCDATA

public void startCDATA()

startDocument

public void startDocument()

startDTD

public void startDTD(String name, String publicId, String systemId)

startElement

public void startElement(String namespaceURI, String localName, String qualifiedName, Attributes attributes)

startEntity

public void startEntity(String name)

startPrefixMapping

public void startPrefixMapping(String prefix, String uri)

unparsedEntityDecl

public void unparsedEntityDecl(String name, String publicId, String systemId, String notationName)
Receive notification of an unparsed entity declaration event.

Note that the notation name corresponds to a notation reported by the {@link #notationDecl notationDecl}event. It is up to the application to record the entity for later reference, if necessary.

If the system identifier is a URL, the parser must resolve it fully before passing it to the application.

Parameters: name The unparsed entity's name. publicId The entity's public identifier, or null if none was given. systemId The entity's system identifier. notationName The name of the associated notation.

Throws: SAXException Any SAX exception, possibly wrapping another exception.

See Also: SAXContentHandler org.xml.sax.AttributeList

warning

public void warning(SAXParseException exception)
This method is called when a warning occurs during the parsing of the document. This method does nothing.

Parameters: exception DOCUMENT ME!

Throws: SAXException DOCUMENT ME!

Copyright B) 2005 MetaStuff Ltd. All Rights Reserved. Hosted by

SourceForge