## org.dom4j.io
Class SAXContentHandler

    java.lang.Object
      org.xml.sax.helpers.DefaultHandler
          org.dom4j.io.SAXContentHandler

All Implemented Interfaces:
  ContentHandler, DeclHandler, DTDHandler, EntityResolver, ErrorHandler, LexicalHandler

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, org.dom4j.io.ElementStack elementStack)`

Method Summary
`protected void` `addAttributes(Element element, Attributes attributes)` Add all the attributes to the given elements
`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
`protected void` `addDTDDeclaration(Object declaration)` Adds an internal DTD declaration to the list of declarations
`protected void` `addExternalDTDDeclaration(Object declaration)` Adds an external DTD declaration to the list of declarations
`void` `attributeDecl(String eName, String aName, String type, String valueDefault, String val)` Report an attribute type declaration.
`void` `characters(char[] ch, int start, int end)`
`void` `comment(char[] ch, int start, int end)`
`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
`protected Document` `createDocument()` DOCUMENT ME!
`protected org.dom4j.io.ElementStack` `createElementStack()`
`void` `elementDecl(String name, String model)` Report an element type declaration.
`void` `endCDATA()`
`void` `endDocument()`
`void` `endDTD()`
`void` `endElement(String namespaceURI, String localName, String qName)`
`void` `endEntity(String name)`
`void` `endPrefixMapping(String prefix)`
`void` `error(SAXParseException exception)` This method is called when an error is detected during parsing such as a validation error.
`void` `externalEntityDecl(String name, String publicId, String sysId)` Report a parsed external entity declaration.
`void` `fatalError(SAXParseException exception)` This method is called when a fatal error occurs during parsing.
`Document` `getDocument()` DOCUMENT ME!
`org.dom4j.io.ElementStack` `getElementStack()`
`EntityResolver` `getEntityResolver()`
`InputSource` `getInputSource()`
`void` `internalEntityDecl(String name, String value)` Report an internal entity declaration.
`protected boolean` `isIgnorableEntity(String name)` a Strategy Method to determine if a given entity name is ignorable
`boolean` `isIgnoreComments()` Returns whether we should ignore comments or not.
`boolean` `isIncludeExternalDTDDeclarations()` DOCUMENT ME!
`boolean` `isIncludeInternalDTDDeclarations()` DOCUMENT ME!
`boolean` `isMergeAdjacentText()` Returns whether adjacent text nodes should be merged together.
`boolean` `isStripWhitespaceText()` Sets whether whitespace between element start and end tags should be ignored
`void` `notationDecl(String name, String publicId, String systemId)` Receive notification of a notation declaration event.
`void` `processingInstruction(String target, String data)`
`void` `setDocumentLocator(Locator documentLocator)`
`void` `setElementStack(org.dom4j.io.ElementStack elementStack)`
`void` `setEntityResolver(EntityResolver entityResolver)`
`void` `setIgnoreComments(boolean ignoreComments)` Sets whether we should ignore comments or not.
`void` `setIncludeExternalDTDDeclarations(boolean include)` Sets whether DTD external declarations should be expanded into the DocumentType object or not.
`void` `setIncludeInternalDTDDeclarations(boolean include)` Sets whether internal DTD declarations should be expanded into the DocumentType object or not.
`void` `setInputSource(InputSource inputSource)`
`void` `setMergeAdjacentText(boolean mergeAdjacentText)` Sets whether or not adjacent text nodes should be merged together when parsing.
`void` `setStripWhitespaceText(boolean stripWhitespaceText)` Sets whether whitespace between element start and end tags should be ignored.
`void` `startCDATA()`
`void` `startDocument()`
`void` `startDTD(String name, String publicId, String systemId)`
`void` `startElement(String namespaceURI, String localName, String qualifiedName, Attributes attributes)`
`void` `startEntity(String name)`
`void` `startPrefixMapping(String prefix, String uri)`
`void` `unparsedEntityDecl(String name, String publicId, String systemId, String notationName)` Receive notification of an unparsed entity declaration event.
`void` `warning(SAXParseException exception)` This method is called when a warning occurs during the parsing of the document.

Methods inherited from class org.xml.sax.helpers.DefaultHandler
`ignorableWhitespace, resolveEntity, skippedEntity`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### SAXContentHandler

    public SAXContentHandler()

### SAXContentHandler

    public SAXContentHandler(DocumentFactory documentFactory)

### SAXContentHandler

    public SAXContentHandler(DocumentFactory documentFactory,
                             ElementHandler elementHandler)

### SAXContentHandler

    public SAXContentHandler(DocumentFactory documentFactory,
                             ElementHandler elementHandler,
                             org.dom4j.io.ElementStack elementStack)

Method Detail

### getDocument

    public Document getDocument()

  DOCUMENT ME!

  Returns:
    the document that has been or is being built

### setDocumentLocator

    public void setDocumentLocator(Locator documentLocator)

  Specified by:
    `setDocumentLocator` in interface `ContentHandler`

### processingInstruction

    public void processingInstruction(String target,
                                      String data)
                               throws SAXException

  Specified by:
    `processingInstruction` in interface `ContentHandler`
  Throws:
    `SAXException`

### startPrefixMapping

    public void startPrefixMapping(String prefix,
                                   String uri)
                            throws SAXException

  Specified by:
    `startPrefixMapping` in interface `ContentHandler`
  Throws:
    `SAXException`

### endPrefixMapping

    public void endPrefixMapping(String prefix)
                          throws SAXException

  Specified by:
    `endPrefixMapping` in interface `ContentHandler`
  Throws:
    `SAXException`

### startDocument

    public void startDocument()
                       throws SAXException

  Specified by:
    `startDocument` in interface `ContentHandler`
  Throws:
    `SAXException`

### endDocument

    public void endDocument()
                     throws SAXException

  Specified by:
    `endDocument` in interface `ContentHandler`
  Throws:
    `SAXException`

### startElement

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

  Specified by:
    `startElement` in interface `ContentHandler`
  Throws:
    `SAXException`

### endElement

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

  Specified by:
    `endElement` in interface `ContentHandler`
  Throws:
    `SAXException`

### characters

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

  Specified by:
    `characters` in interface `ContentHandler`
  Throws:
    `SAXException`

### warning

    public void warning(SAXParseException exception)
                 throws SAXException

  This method is called when a warning occurs during the parsing of the document. This method does nothing.

  Specified by:
    `warning` in interface `ErrorHandler`
  Parameters:
    `exception` - DOCUMENT ME!
  Throws:
    `SAXException` - DOCUMENT ME!

### error

    public void error(SAXParseException exception)
               throws SAXException

  This method is called when an error is detected during parsing such as a validation error. This method rethrows the exception

  Specified by:
    `error` in interface `ErrorHandler`
  Parameters:
    `exception` - DOCUMENT ME!
  Throws:
    `SAXException` - DOCUMENT ME!

### fatalError

    public void fatalError(SAXParseException exception)
                    throws SAXException

  This method is called when a fatal error occurs during parsing. This method rethrows the exception

  Specified by:
    `fatalError` in interface `ErrorHandler`
  Parameters:
    `exception` - DOCUMENT ME!
  Throws:
    `SAXException` - DOCUMENT ME!

### startDTD

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

  Specified by:
    `startDTD` in interface `LexicalHandler`
  Throws:
    `SAXException`

### endDTD

    public void endDTD()
                throws SAXException

  Specified by:
    `endDTD` in interface `LexicalHandler`
  Throws:
    `SAXException`

### startEntity

    public void startEntity(String name)
                     throws SAXException

  Specified by:
    `startEntity` in interface `LexicalHandler`
  Throws:
    `SAXException`

### endEntity

    public void endEntity(String name)
                   throws SAXException

  Specified by:
    `endEntity` in interface `LexicalHandler`
  Throws:
    `SAXException`

### startCDATA

    public void startCDATA()
                    throws SAXException

  Specified by:
    `startCDATA` in interface `LexicalHandler`
  Throws:
    `SAXException`

### endCDATA

    public void endCDATA()
                  throws SAXException

  Specified by:
    `endCDATA` in interface `LexicalHandler`
  Throws:
    `SAXException`

### comment

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

  Specified by:
    `comment` in interface `LexicalHandler`
  Throws:
    `SAXException`

### elementDecl

    public void elementDecl(String name,
                            String model)
                     throws SAXException

  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.

  Specified by:
    `elementDecl` in interface `DeclHandler`
  Parameters:
    `name` - The element type name.
    `model` - The content model as a normalized string.
  Throws:
    `SAXException` - The application may raise an exception.

### attributeDecl

    public void attributeDecl(String eName,
                              String aName,
                              String type,
                              String valueDefault,
                              String val)
                       throws SAXException

  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.

  Specified by:
    `attributeDecl` in interface `DeclHandler`
  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.

### internalEntityDecl

    public void internalEntityDecl(String name,
                                   String value)
                            throws SAXException

  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.

  Specified by:
    `internalEntityDecl` in interface `DeclHandler`
  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:
    `externalEntityDecl(java.lang.String, java.lang.String, java.lang.String)`, `DTDHandler.unparsedEntityDecl(java.lang.String, java.lang.String, java.lang.String, java.lang.String)`

### externalEntityDecl

    public void externalEntityDecl(String name,
                                   String publicId,
                                   String sysId)
                            throws SAXException

  Report a parsed external entity declaration.

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

  Specified by:
    `externalEntityDecl` in interface `DeclHandler`
  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:
    `internalEntityDecl(java.lang.String, java.lang.String)`, `DTDHandler.unparsedEntityDecl(java.lang.String, java.lang.String, java.lang.String, java.lang.String)`

### notationDecl

    public void notationDecl(String name,
                             String publicId,
                             String systemId)
                      throws SAXException

  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.

  Specified by:
    `notationDecl` in interface `DTDHandler`
  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:
    `unparsedEntityDecl(java.lang.String, java.lang.String, java.lang.String, java.lang.String)`, `AttributeList`

### unparsedEntityDecl

    public void unparsedEntityDecl(String name,
                                   String publicId,
                                   String systemId,
                                   String notationName)
                            throws SAXException

  Receive notification of an unparsed entity declaration event.

  Note that the notation name corresponds to a notation reported by the `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.

  Specified by:
    `unparsedEntityDecl` in interface `DTDHandler`
  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:
    `notationDecl(java.lang.String, java.lang.String, java.lang.String)`, `AttributeList`

### getElementStack

    public org.dom4j.io.ElementStack getElementStack()

### setElementStack

    public void setElementStack(org.dom4j.io.ElementStack elementStack)

### getEntityResolver

    public EntityResolver getEntityResolver()

### setEntityResolver

    public void setEntityResolver(EntityResolver entityResolver)

### getInputSource

    public InputSource getInputSource()

### setInputSource

    public void setInputSource(InputSource inputSource)

### isIncludeInternalDTDDeclarations

    public boolean isIncludeInternalDTDDeclarations()

  DOCUMENT ME!

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

### 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.

### isIncludeExternalDTDDeclarations

    public boolean isIncludeExternalDTDDeclarations()

  DOCUMENT ME!

  Returns:
    whether external DTD declarations should be expanded into the DocumentType object 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.

### isMergeAdjacentText

    public boolean isMergeAdjacentText()

  Returns whether adjacent text nodes should be merged together.

  Returns:
    Value of property mergeAdjacentText.

### 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.

### isStripWhitespaceText

    public boolean isStripWhitespaceText()

  Sets whether whitespace between element start and end tags should be ignored

  Returns:
    Value of property stripWhitespaceText.

### 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.

### isIgnoreComments

    public boolean isIgnoreComments()

  Returns whether we should ignore comments or not.

  Returns:
    boolean

### setIgnoreComments

    public void setIgnoreComments(boolean ignoreComments)

  Sets whether we should ignore comments or not.

  Parameters:
    `ignoreComments` - whether we should ignore comments or not.

### 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

### 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!

### 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!

### addAttributes

    protected void addAttributes(Element element,
                                 Attributes attributes)

  Add all the attributes to the given elements

  Parameters:
    `element` - DOCUMENT ME!
    `attributes` - 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!

### createElementStack

    protected org.dom4j.io.ElementStack createElementStack()

Copyright © 2001-2005 MetaStuff Ltd.. All Rights Reserved.