Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.xalan.transformer
Class ResultTreeHandler

    java.lang.Object
      |
      +--org.apache.xalan.transformer.QueuedEvents
            |
            +--org.apache.xalan.transformer.ResultTreeHandler

public class ResultTreeHandler
extends QueuedEvents
implements ContentHandler, LexicalHandler, TransformState, DOM2DTM.CharacterNodeHandler, ErrorHandler

This class is a layer between the direct calls to the result tree content handler, and the transformer. For one thing, we have to delay the call to getContentHandler().startElement(name, atts) because of the xsl:attribute and xsl:copy calls. In other words, the attributes have to be fully collected before you can call startElement.

Field Summary
`ClonerToResultTree` | `m_cloner` This class clones nodes to the result tree.

Fields inherited from class org.apache.xalan.transformer.QueuedEvents
`m_docPending, m_elemIsEnded, m_elemIsPending`

Constructor Summary
`ResultTreeHandler()` Null constructor for object pooling.
`ResultTreeHandler(TransformerImpl transformer, ContentHandler realHandler)` Create a new result tree handler.

Method Summary
`void` | `addAttribute(int attr)` Copy an DOM attribute to the created output element, executing attribute templates as need be, and processing the xsl:use attribute.
`void` | `addAttribute(java.lang.String uri, java.lang.String localName, java.lang.String rawName, java.lang.String type, java.lang.String value)` Add an attribute to the end of the list.
`void` | `addAttributes(int src)` Copy DOM attributes to the result element.
`void` | `addNSDeclsToAttrs()` Add the attributes that have been declared to the attribute list.
`void` | `characters(char[] ch, int start, int length)` Bottleneck the characters event.
`void` | `characters(Node node)`
`void` | `comment(char[] ch, int start, int length)` Bottleneck the comment event.
`void` | `comment(java.lang.String data)` Bottleneck the comment event.
`void` | `endCDATA()` End the CDATA characters.
`void` | `endDocument()` Bottleneck the endDocument event.
`void` | `endDTD()` End the DTD.
`void` | `endElement(java.lang.String ns, java.lang.String localName, java.lang.String name)` Bottleneck the endElement event.
`void` | `endEntity(java.lang.String name)` End an entity.
`void` | `endPrefixMapping(java.lang.String prefix)` End the scope of a prefix-URI mapping.
`void` | `ensureNamespaceDeclDeclared(DTM dtm, int namespace)` This function checks to make sure a given prefix is really declared.
`void` | `ensurePrefixIsDeclared(java.lang.String ns, java.lang.String rawName)` This function checks to make sure a given prefix is really declared.
`void` | `entityReference(java.lang.String name)` Entity reference event.
`void` | `error(SAXParseException exception)` Receive notification of a recoverable error.
`void` | `fatalError(SAXParseException exception)` Receive notification of a non-recoverable error.
`void` | `flushPending()` Flush the pending element.
`void` | `flushPending(boolean flushPrefixes)` Flush the pending element, and any attributes associated with it.
`ContentHandler` | `getContentHandler()` Return the current content handler.
`NodeIterator` | `getContextNodeList()` Get the current context node list.
`ElemTemplateElement` | `getCurrentElement()` Retrieves the stylesheet element that produced the SAX event.
`Node` | `getCurrentNode()` This method retrieves the current context node in the source tree.
`ElemTemplate` | `getCurrentTemplate()` This method retrieves the xsl:template that is in effect, which may be a matched template or a named template.
`Node` | `getMatchedNode()` Retrieves the node in the source tree that matched the template obtained via getMatchedTemplate().
`ElemTemplate` | `getMatchedTemplate()` This method retrieves the xsl:template that was matched.
`NamespaceSupport` | `getNamespaceSupport()` Get the NamespaceSupport object.
`java.lang.String` | `getNewUniqueNSPrefix()` Get new unique namespace prefix.
`MutableAttrListImpl` | `getPendingAttributes()` Get the pending attributes.
`java.lang.String` | `getPrefix(java.lang.String namespace)` Given a namespace, try and find a prefix.
`Transformer` | `getTransformer()` Get the TrAX Transformer object in effect.
`int` | `getUniqueNSValue()` Get a unique namespace value.
`java.lang.String` | `getURI(java.lang.String prefix)` Given a prefix, return the namespace,
`void` | `ignorableWhitespace(char[] ch, int start, int length)` Bottleneck the ignorableWhitespace event.
`void` | `init(TransformerImpl transformer, ContentHandler realHandler)` Initializer method.
`boolean` | `isDefinedNSDecl(int attr)` Returns whether a namespace is defined
`boolean` | `isDefinedNSDecl(int attr, DTM dtm)` Returns whether a namespace is defined
`boolean` | `isDefinedNSDecl(java.lang.String rawName, java.lang.String value)` Return whether or not a namespace declaration is defined
`boolean` | `isElementPending()` Tell if an element is pending, to be output to the result tree.
`void` | `outputResultTreeFragment(XObject obj, XPathContext support)` Given a result tree fragment, walk the tree and output it to the result stream.
`void` | `processingInstruction(java.lang.String target, java.lang.String data)` Bottleneck the processingInstruction event.
`void` | `processNSDecls(int src, int type, DTM dtm)` Copy `xmlns:` attributes in if not already in scope.
`void` | `setContentHandler(ContentHandler ch)` Set the current content handler.
`void` | `setDocumentLocator(Locator locator)` To fullfill the FormatterListener interface...
`void` | `setNSDeclsHaveBeenAdded(boolean b)` Set whether Namespace declarations have been added to this element
`void` | `skippedEntity(java.lang.String name)` Receive notification of a skipped entity.
`void` | `startCDATA()` Start the CDATACharacters.
`void` | `startDocument()` Bottleneck the startDocument event.
`void` | `startDTD(java.lang.String s1, java.lang.String s2, java.lang.String s3)` Start the DTD.
`void` | `startElement(java.lang.String ns, java.lang.String localName, java.lang.String name, Attributes atts)` Bottleneck the startElement event.
`void` | `startEntity(java.lang.String name)` Start an entity.
`void` | `startPrefixMapping(java.lang.String prefix, java.lang.String uri)` Begin the scope of a prefix-URI Namespace mapping.
`void` | `startPrefixMapping(java.lang.String prefix, java.lang.String uri, boolean shouldFlush)` Begin the scope of a prefix-URI Namespace mapping.
`void` | `warning(SAXParseException exception)` Receive notification of a warning.

Methods inherited from class org.apache.xalan.transformer.QueuedEvents
`reset`

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

Field Detail

### m_cloner

    public ClonerToResultTree m_cloner

  This class clones nodes to the result tree.

Constructor Detail

### ResultTreeHandler

    public ResultTreeHandler()

  Null constructor for object pooling.

### ResultTreeHandler

    public ResultTreeHandler(TransformerImpl transformer,
                             ContentHandler realHandler)

  Create a new result tree handler. The real content handler will be the ContentHandler passed as an argument.
  Parameters:
    `transformer` - non-null transformer instance
    `realHandler` - Content Handler instance

Method Detail

### init

    public void init(TransformerImpl transformer,
                     ContentHandler realHandler)

  Initializer method.
  Parameters:
    `transformer` - non-null transformer instance
    `realHandler` - Content Handler instance

### startDocument

    public void startDocument()
                       throws SAXException

  Bottleneck the startDocument event.
  Specified by:
    startDocument in interface ContentHandler
  Throws:
    SAXException -

### endDocument

    public void endDocument()
                     throws SAXException

  Bottleneck the endDocument event. This may be called more than once in order to make sure the pending start document is called.
  Specified by:
    endDocument in interface ContentHandler
  Throws:
    SAXException -

### startElement

    public void startElement(java.lang.String ns,
                             java.lang.String localName,
                             java.lang.String name,
                             Attributes atts)
                      throws SAXException

  Bottleneck the startElement event. This is used to "pend" an element, so that attributes can still be added to it before the real "startElement" is called on the result tree listener.
  Specified by:
    startElement in interface ContentHandler
  Parameters:
    `ns` - Namespace URI of element
    `localName` - Local part of qname of element
    `name` - Name of element
    `atts` - List of attributes for the element
  Throws:
    SAXException -

### endElement

    public void endElement(java.lang.String ns,
                           java.lang.String localName,
                           java.lang.String name)
                    throws SAXException

  Bottleneck the endElement event.
  Specified by:
    endElement in interface ContentHandler
  Parameters:
    `ns` - Namespace URI of element
    `localName` - Local part of qname of element
    `name` - Name of element
  Throws:
    SAXException -

### startPrefixMapping

    public void startPrefixMapping(java.lang.String prefix,
                                   java.lang.String uri)
                            throws SAXException

  Begin the scope of a prefix-URI Namespace mapping.

  The information from this event is not necessary for normal Namespace processing: the SAX XML reader will automatically replace prefixes for element and attribute names when the http://xml.org/sax/features/namespaces feature is true (the default).

  There are cases, however, when applications need to use prefixes in character data or in attribute values, where they cannot safely be expanded automatically; the start/endPrefixMapping event supplies the information to the application to expand prefixes in those contexts itself, if necessary.

  Note that start/endPrefixMapping events are not guaranteed to be properly nested relative to each-other: all startPrefixMapping events will occur before the corresponding startElement event, and all endPrefixMapping events will occur after the corresponding endElement event, but their order is not guaranteed.

  Specified by:
    startPrefixMapping in interface ContentHandler
  Parameters:
    `prefix` - The Namespace prefix being declared.
    `uri` - The Namespace URI the prefix is mapped to.
  Throws:
    SAXException - The client may throw an exception during processing.
  See Also:
    `endPrefixMapping(java.lang.String)`, `startElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes)`

### startPrefixMapping

    public void startPrefixMapping(java.lang.String prefix,
                                   java.lang.String uri,
                                   boolean shouldFlush)
                            throws SAXException

  Begin the scope of a prefix-URI Namespace mapping.
  Parameters:
    `prefix` - The Namespace prefix being declared.
    `uri` - The Namespace URI the prefix is mapped to.
    `shouldFlush` - Indicate whether pending events needs to be flushed first
  Throws:
    SAXException - The client may throw an exception during processing.

### endPrefixMapping

    public void endPrefixMapping(java.lang.String prefix)
                          throws SAXException

  End the scope of a prefix-URI mapping.

  See startPrefixMapping for details. This event will always occur after the corresponding endElement event, but the order of endPrefixMapping events is not otherwise guaranteed.

  Specified by:
    endPrefixMapping in interface ContentHandler
  Parameters:
    `prefix` - The prefix that was being mapping.
  Throws:
    SAXException - The client may throw an exception during processing.
  See Also:
    `startPrefixMapping(java.lang.String, java.lang.String)`, `endElement(java.lang.String, java.lang.String, java.lang.String)`

### characters

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

  Bottleneck the characters event.
  Specified by:
    characters in interface ContentHandler
  Parameters:
    `ch` - Array of characters to process
    `start` - start of characters in the array
    `length` - Number of characters in the array
  Throws:
    SAXException -

### characters

    public void characters(Node node)
                    throws SAXException

  Specified by:
    characters in interface DOM2DTM.CharacterNodeHandler

### ignorableWhitespace

    public void ignorableWhitespace(char[] ch,
                                    int start,
                                    int length)
                             throws SAXException

  Bottleneck the ignorableWhitespace event.
  Specified by:
    ignorableWhitespace in interface ContentHandler
  Parameters:
    `ch` - Array of characters to process
    `start` - start of characters in the array
    `length` - Number of characters in the array
  Throws:
    SAXException -

### processingInstruction

    public void processingInstruction(java.lang.String target,
                                      java.lang.String data)
                               throws SAXException

  Bottleneck the processingInstruction event.
  Specified by:
    processingInstruction in interface ContentHandler
  Parameters:
    `target` - Processing instruction target name
    `data` - Processing instruction data
  Throws:
    SAXException -

### comment

    public void comment(java.lang.String data)
                 throws SAXException

  Bottleneck the comment event.
  Parameters:
    `data` - Comment data
  Throws:
    SAXException -

### comment

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

  Bottleneck the comment event.
  Specified by:
    comment in interface LexicalHandler
  Parameters:
    `ch` - Character array with comment data
    `start` - start of characters in the array
    `length` - number of characters in the array
  Throws:
    SAXException -

### entityReference

    public void entityReference(java.lang.String name)
                         throws SAXException

  Entity reference event.
  Parameters:
    `name` - Name of entity
  Throws:
    SAXException -

### startEntity

    public void startEntity(java.lang.String name)
                     throws SAXException

  Start an entity.
  Specified by:
    startEntity in interface LexicalHandler
  Parameters:
    `name` - Name of the entity
  Throws:
    SAXException -

### endEntity

    public void endEntity(java.lang.String name)
                   throws SAXException

  End an entity.
  Specified by:
    endEntity in interface LexicalHandler
  Parameters:
    `name` - Name of the entity
  Throws:
    SAXException -

### startDTD

    public void startDTD(java.lang.String s1,
                         java.lang.String s2,
                         java.lang.String s3)
                  throws SAXException

  Start the DTD.
  Specified by:
    startDTD in interface LexicalHandler
  Parameters:
    `s1` - The document type name.
    `s2` - The declared public identifier for the external DTD subset, or null if none was declared.
    `s3` - The declared system identifier for the external DTD subset, or null if none was declared.
  Throws:
    SAXException -

### endDTD

    public void endDTD()
                throws SAXException

  End the DTD.
  Specified by:
    endDTD in interface LexicalHandler
  Throws:
    SAXException -

### startCDATA

    public void startCDATA()
                    throws SAXException

  Start the CDATACharacters.
  Specified by:
    startCDATA in interface LexicalHandler
  Throws:
    SAXException -

### endCDATA

    public void endCDATA()
                  throws SAXException

  End the CDATA characters.
  Specified by:
    endCDATA in interface LexicalHandler
  Throws:
    SAXException -

### skippedEntity

    public void skippedEntity(java.lang.String name)
                       throws SAXException

  Receive notification of a skipped entity.

  The Parser will invoke this method once for each entity skipped. Non-validating processors may skip entities if they have not seen the declarations (because, for example, the entity was declared in an external DTD subset). All processors may skip external entities, depending on the values of the http://xml.org/sax/features/external-general-entities and the http://xml.org/sax/features/external-parameter-entities properties.

  Specified by:
    skippedEntity in interface ContentHandler
  Parameters:
    `name` - The name of the skipped entity. If it is a parameter entity, the name will begin with '%'.
  Throws:
    SAXException - Any SAX exception, possibly wrapping another exception.

### setNSDeclsHaveBeenAdded

    public void setNSDeclsHaveBeenAdded(boolean b)

  Set whether Namespace declarations have been added to this element
  Parameters:
    `b` - Flag indicating whether Namespace declarations have been added to this element

### flushPending

    public final void flushPending()
                            throws SAXException

  Flush the pending element.
  Throws:
    SAXException -

### flushPending

    public final void flushPending(boolean flushPrefixes)
                            throws SAXException

  Flush the pending element, and any attributes associated with it. NOTE: If there are attributes but _no_ pending element (which can happen if the user's stylesheet is doing something inappropriate), we still want to make sure they are flushed.
  Parameters:
    `type` - Event type NEEDSDOC @param flushPrefixes
  Throws:
    SAXException -

### outputResultTreeFragment

    public void outputResultTreeFragment(XObject obj,
                                         XPathContext support)
                                  throws SAXException

  Given a result tree fragment, walk the tree and output it to the result stream.
  Parameters:
    `obj` - Result tree fragment object
    `support` - XPath context for the result tree fragment
  Throws:
    SAXException -

### setDocumentLocator

    public void setDocumentLocator(Locator locator)

  To fullfill the FormatterListener interface... no action for the moment.
  Specified by:
    setDocumentLocator in interface ContentHandler
  Parameters:
    `locator` - Document locator

### ensurePrefixIsDeclared

    public void ensurePrefixIsDeclared(java.lang.String ns,
                                       java.lang.String rawName)
                                throws SAXException

  This function checks to make sure a given prefix is really declared. It might not be, because it may be an excluded prefix. If it's not, it still needs to be declared at this point. TODO: This needs to be done at an earlier stage in the game... -sb
  Parameters:
    `ns` - Namespace URI of the element
    `rawName` - Raw name of element (with prefix)
  Throws:
    SAXException -

### ensureNamespaceDeclDeclared

    public void ensureNamespaceDeclDeclared(DTM dtm,
                                            int namespace)
                                     throws SAXException

  This function checks to make sure a given prefix is really declared. It might not be, because it may be an excluded prefix. If it's not, it still needs to be declared at this point. TODO: This needs to be done at an earlier stage in the game... -sb
  Parameters:
    `ns` - Namespace URI of the element
    `rawName` - Raw name of element (with prefix) NEEDSDOC @param dtm NEEDSDOC @param namespace
  Throws:
    SAXException -

### addNSDeclsToAttrs

    public void addNSDeclsToAttrs()

  Add the attributes that have been declared to the attribute list. %REVIEW% This should have been done automatically during flushPending(boolean); is it ever explicitly reinvoked?

### processNSDecls

    public void processNSDecls(int src,
                               int type,
                               DTM dtm)
                        throws TransformerException

  Copy `xmlns:` attributes in if not already in scope. As a quick hack to support ClonerToResultTree, this can also be used to copy an individual namespace node.
  Parameters:
    `src` - Source Node NEEDSDOC @param type NEEDSDOC @param dtm
  Throws:
    TransformerException -

### getURI

    public java.lang.String getURI(java.lang.String prefix)

  Given a prefix, return the namespace,
  Parameters:
    `prefix` - Given prefix name
  Returns:
    Namespace associated with the given prefix, or null

### getPrefix

    public java.lang.String getPrefix(java.lang.String namespace)

  Given a namespace, try and find a prefix.
  Parameters:
    `namespace` - Given namespace URI
  Returns:
    Prefix name associated with namespace URI

### getNamespaceSupport

    public NamespaceSupport getNamespaceSupport()

  Get the NamespaceSupport object.
  Returns:
    NamespaceSupport object.

### getContentHandler

    public final ContentHandler getContentHandler()

  Return the current content handler.
  Returns:
    The current content handler, or null if none has been registered.
  See Also:
    `setContentHandler(org.xml.sax.ContentHandler)`

### setContentHandler

    public void setContentHandler(ContentHandler ch)

  Set the current content handler.
  Parameters:
    `ch` - Content Handler to be set
  Returns:
    The current content handler, or null if none has been registered.
  See Also:
    `getContentHandler()`

### getUniqueNSValue

    public int getUniqueNSValue()

  Get a unique namespace value.
  Returns:
    a unique namespace value to be used with a fabricated prefix

### getNewUniqueNSPrefix

    public java.lang.String getNewUniqueNSPrefix()

  Get new unique namespace prefix.
  Returns:
    Unique fabricated prefix.

### getPendingAttributes

    public MutableAttrListImpl getPendingAttributes()

  Get the pending attributes. We have to delay the call to m_flistener.startElement(name, atts) because of the xsl:attribute and xsl:copy calls. In other words, the attributes have to be fully collected before you can call startElement.
  Returns:
    the pending attributes.

### addAttribute

    public void addAttribute(java.lang.String uri,
                             java.lang.String localName,
                             java.lang.String rawName,
                             java.lang.String type,
                             java.lang.String value)
                      throws TransformerException

  Add an attribute to the end of the list.

  Do not pass in xmlns decls to this function!

  For the sake of speed, this method does no checking to see if the attribute is already in the list: that is the responsibility of the application.

  Parameters:
    `uri` - The Namespace URI, or the empty string if none is available or Namespace processing is not being performed.
    `localName` - The local name, or the empty string if Namespace processing is not being performed.
    `rawName` - The raw XML 1.0 name, or the empty string if raw names are not available.
    `type` - The attribute type as a string.
    `value` - The attribute value.
  Throws:
    TransformerException -

### isDefinedNSDecl

    public boolean isDefinedNSDecl(java.lang.String rawName,
                                   java.lang.String value)

  Return whether or not a namespace declaration is defined
  Parameters:
    `rawName` - Raw name of namespace element
    `value` - URI of given namespace
  Returns:
    True if the namespace is already defined in list of namespaces

### isDefinedNSDecl

    public boolean isDefinedNSDecl(int attr)

  Returns whether a namespace is defined
  Parameters:
    `attr` - Namespace attribute node
  Returns:
    True if the namespace is already defined in list of namespaces

### isDefinedNSDecl

    public boolean isDefinedNSDecl(int attr,
                                   DTM dtm)

  Returns whether a namespace is defined
  Parameters:
    `attr` - Namespace attribute node
    `dtm` - The DTM that owns attr.
  Returns:
    True if the namespace is already defined in list of namespaces

### addAttribute

    public void addAttribute(int attr)
                      throws TransformerException

  Copy an DOM attribute to the created output element, executing attribute templates as need be, and processing the xsl:use attribute.
  Parameters:
    `attr` - Attribute node to add to result tree
  Throws:
    TransformerException -

### addAttributes

    public void addAttributes(int src)
                       throws TransformerException

  Copy DOM attributes to the result element.
  Parameters:
    `src` - Source node with the attributes
  Throws:
    TransformerException -

### isElementPending

    public final boolean isElementPending()

  Tell if an element is pending, to be output to the result tree.
  Returns:
    True if an element is pending

### getCurrentElement

    public ElemTemplateElement getCurrentElement()

  Retrieves the stylesheet element that produced the SAX event.

  Please note that the ElemTemplateElement returned may be in a default template, and thus may not be defined in the stylesheet.

  Specified by:
    getCurrentElement in interface TransformState
  Returns:
    the stylesheet element that produced the SAX event.

### getCurrentNode

    public Node getCurrentNode()

  This method retrieves the current context node in the source tree.
  Specified by:
    getCurrentNode in interface TransformState
  Returns:
    the current context node in the source tree.

### getCurrentTemplate

    public ElemTemplate getCurrentTemplate()

  This method retrieves the xsl:template that is in effect, which may be a matched template or a named template.

  Please note that the ElemTemplate returned may be a default template, and thus may not have a template defined in the stylesheet.

  Specified by:
    getCurrentTemplate in interface TransformState
  Returns:
    the xsl:template that is in effect

### getMatchedTemplate

    public ElemTemplate getMatchedTemplate()

  This method retrieves the xsl:template that was matched. Note that this may not be the same thing as the current template (which may be from getCurrentElement()), since a named template may be in effect.

  Please note that the ElemTemplate returned may be a default template, and thus may not have a template defined in the stylesheet.

  Specified by:
    getMatchedTemplate in interface TransformState
  Returns:
    the xsl:template that was matched.

### getMatchedNode

    public Node getMatchedNode()

  Retrieves the node in the source tree that matched the template obtained via getMatchedTemplate().
  Specified by:
    getMatchedNode in interface TransformState
  Returns:
    the node in the source tree that matched the template obtained via getMatchedTemplate().

### getContextNodeList

    public NodeIterator getContextNodeList()

  Get the current context node list.
  Specified by:
    getContextNodeList in interface TransformState
  Returns:
    the current context node list.

### getTransformer

    public Transformer getTransformer()

  Get the TrAX Transformer object in effect.
  Specified by:
    getTransformer in interface TransformState
  Returns:
    the TrAX Transformer object in effect.

### warning

    public void warning(SAXParseException exception)
                 throws SAXException

  Receive notification of a warning.

  SAX parsers will use this method to report conditions that are not errors or fatal errors as defined by the XML 1.0 recommendation. The default behaviour is to take no action.

  The SAX parser must continue to provide normal parsing events after invoking this method: it should still be possible for the application to process the document through to the end.

  Filters may use this method to report other, non-XML warnings as well.

  Specified by:
    warning in interface ErrorHandler
  Parameters:
    `exception` - The warning information encapsulated in a SAX parse exception.
  Throws:
    SAXException - Any SAX exception, possibly wrapping another exception.
  See Also:
    `SAXParseException`

### error

    public void error(SAXParseException exception)
               throws SAXException

  Receive notification of a recoverable error.

  This corresponds to the definition of "error" in section 1.2 of the W3C XML 1.0 Recommendation. For example, a validating parser would use this callback to report the violation of a validity constraint. The default behaviour is to take no action.

  The SAX parser must continue to provide normal parsing events after invoking this method: it should still be possible for the application to process the document through to the end. If the application cannot do so, then the parser should report a fatal error even if the XML 1.0 recommendation does not require it to do so.

  Filters may use this method to report other, non-XML errors as well.

  Specified by:
    error in interface ErrorHandler
  Parameters:
    `exception` - The error information encapsulated in a SAX parse exception.
  Throws:
    SAXException - Any SAX exception, possibly wrapping another exception.
  See Also:
    `SAXParseException`

### fatalError

    public void fatalError(SAXParseException exception)
                    throws SAXException

  Receive notification of a non-recoverable error.

  This corresponds to the definition of "fatal error" in section 1.2 of the W3C XML 1.0 Recommendation. For example, a parser would use this callback to report the violation of a well-formedness constraint.

  The application must assume that the document is unusable after the parser has invoked this method, and should continue (if at all) only for the sake of collecting addition error messages: in fact, SAX parsers are free to stop reporting any other events once this method has been invoked.

  Specified by:
    fatalError in interface ErrorHandler
  Parameters:
    `exception` - The error information encapsulated in a SAX parse exception.
  Throws:
    SAXException - Any SAX exception, possibly wrapping another exception.
  See Also:
    `SAXParseException`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2002 Apache XML Project. All Rights Reserved.