APIdia Launch Partner
Top Description Constructors Methods
org.xml.sax.ext

public Class DefaultHandler2

extends DefaultHandler
implements LexicalHandler, DeclHandler, EntityResolver2
Class Inheritance
All Implemented Interfaces
org.xml.sax.ext.EntityResolver2, org.xml.sax.EntityResolver, org.xml.sax.ext.DeclHandler, org.xml.sax.ext.LexicalHandler
Imports
java.io.IOException, org.xml.sax.InputSource, .SAXException, org.xml.sax.helpers.DefaultHandler

This class extends the SAX2 base handler class to support the SAX2 LexicalHandler, DeclHandler, and EntityResolver2 extensions. Except for overriding the original SAX1 resolveEntity() method the added handler methods just return. Subclassers may override everything on a method-by-method basis.

Note

this class might yet learn that the ContentHandler.setDocumentLocator() call might be passed a Locator2 object, and that the ContentHandler.startElement() call might be passed a Attributes2 object.

Author
David Brownell
Since
1.5, SAX 2.0 (extensions 1.1 alpha)

Constructor Summary

AccessConstructor and Description
public
DefaultHandler2()

Constructs a handler which ignores all parsing events.

Method Summary

Modifier and TypeMethod and Description
public void
attributeDecl(String eName, String aName, String type, String mode, String value)

Implements org.xml.sax.ext.DeclHandler.attributeDecl.

Report an attribute type declaration.

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

Implements org.xml.sax.ext.LexicalHandler.comment.

Report an XML comment anywhere in the document.

public void
elementDecl(String name, String model)

Implements org.xml.sax.ext.DeclHandler.elementDecl.

Report an element type declaration.

public void
endCDATA()

Implements org.xml.sax.ext.LexicalHandler.endCDATA.

Report the end of a CDATA section.

public void
endDTD()

Implements org.xml.sax.ext.LexicalHandler.endDTD.

Report the end of DTD declarations.

public void
endEntity(String name)

Implements org.xml.sax.ext.LexicalHandler.endEntity.

Report the end of an entity.

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

Implements org.xml.sax.ext.DeclHandler.externalEntityDecl.

Report a parsed external entity declaration.

public InputSource
getExternalSubset(String name, String baseURI)

Implements org.xml.sax.ext.EntityResolver2.getExternalSubset.

Tells the parser that if no external subset has been declared in the document text, none should be used.

public void
internalEntityDecl(String name, String value)

Implements org.xml.sax.ext.DeclHandler.internalEntityDecl.

Report an internal entity declaration.

public InputSource
resolveEntity(String name, String publicId, String baseURI, String systemId)

Implements org.xml.sax.ext.EntityResolver2.resolveEntity.

Tells the parser to resolve the systemId against the baseURI and read the entity text from that resulting absolute URI.

public InputSource
public void
startCDATA()

Implements org.xml.sax.ext.LexicalHandler.startCDATA.

Report the start of a CDATA section.

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

Implements org.xml.sax.ext.LexicalHandler.startDTD.

Report the start of DTD declarations, if any.

public void
startEntity(String name)

Implements org.xml.sax.ext.LexicalHandler.startEntity.

Report the beginning of some internal and external XML entities.

Inherited from org.xml.sax.helpers.DefaultHandler:
charactersendDocumentendElementendPrefixMappingerrorfatalErrorignorableWhitespacenotationDeclprocessingInstructionsetDocumentLocatorskippedEntitystartDocumentstartElementstartPrefixMappingunparsedEntityDeclwarning

Constructor Detail

DefaultHandler2back to summary
public DefaultHandler2()

Constructs a handler which ignores all parsing events.

Method Detail

attributeDeclback to summary
public void attributeDecl(String eName, String aName, String type, String mode, String value) throws SAXException

Implements org.xml.sax.ext.DeclHandler.attributeDecl.

Doc from org.xml.sax.ext.DeclHandler.attributeDecl.

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.

The value will be the value as reported to applications, appropriately normalized and with entity and character references expanded.

Exceptions
SAXException:
The application may raise an exception.
commentback to summary
public void comment(char[] ch, int start, int length) throws SAXException

Implements org.xml.sax.ext.LexicalHandler.comment.

Doc from org.xml.sax.ext.LexicalHandler.comment.

Report an XML comment anywhere in the document.

This callback will be used for comments inside or outside the document element, including comments in the external DTD subset (if read). Comments in the DTD must be properly nested inside start/endDTD and start/endEntity events (if used).

Exceptions
SAXException:
The application may raise an exception.
elementDeclback to summary
public void elementDecl(String name, String model) throws SAXException

Implements org.xml.sax.ext.DeclHandler.elementDecl.

Doc from org.xml.sax.ext.DeclHandler.elementDecl.

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.

Exceptions
SAXException:
The application may raise an exception.
endCDATAback to summary
public void endCDATA() throws SAXException

Implements org.xml.sax.ext.LexicalHandler.endCDATA.

Doc from org.xml.sax.ext.LexicalHandler.endCDATA.

Report the end of a CDATA section.

Exceptions
SAXException:
The application may raise an exception.
endDTDback to summary
public void endDTD() throws SAXException

Implements org.xml.sax.ext.LexicalHandler.endDTD.

Doc from org.xml.sax.ext.LexicalHandler.endDTD.

Report the end of DTD declarations.

This method is intended to report the end of the DOCTYPE declaration; if the document has no DOCTYPE declaration, this method will not be invoked.

Exceptions
SAXException:
The application may raise an exception.
endEntityback to summary
public void endEntity(String name) throws SAXException

Implements org.xml.sax.ext.LexicalHandler.endEntity.

Doc from org.xml.sax.ext.LexicalHandler.endEntity.

Report the end of an entity.

Exceptions
SAXException:
The application may raise an exception.
externalEntityDeclback to summary
public void externalEntityDecl(String name, String publicId, String systemId) throws SAXException

Implements org.xml.sax.ext.DeclHandler.externalEntityDecl.

Doc from org.xml.sax.ext.DeclHandler.externalEntityDecl.

Report a parsed external entity declaration.

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

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

Exceptions
SAXException:
The application may raise an exception.
getExternalSubsetback to summary
public InputSource getExternalSubset(String name, String baseURI) throws SAXException, IOException

Implements org.xml.sax.ext.EntityResolver2.getExternalSubset.

Tells the parser that if no external subset has been declared in the document text, none should be used.

Exceptions
SAXException:

Doc from org.xml.sax.ext.EntityResolver2.getExternalSubset.

Any SAX exception, possibly wrapping another exception.

IOException:

Doc from org.xml.sax.ext.EntityResolver2.getExternalSubset.

Probably indicating a failure to create a new InputStream or Reader, or an illegal URL.

internalEntityDeclback to summary
public void internalEntityDecl(String name, String value) throws SAXException

Implements org.xml.sax.ext.DeclHandler.internalEntityDecl.

Doc from org.xml.sax.ext.DeclHandler.internalEntityDecl.

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.

Exceptions
SAXException:
The application may raise an exception.
resolveEntityback to summary
public InputSource resolveEntity(String name, String publicId, String baseURI, String systemId) throws SAXException, IOException

Implements org.xml.sax.ext.EntityResolver2.resolveEntity.

Tells the parser to resolve the systemId against the baseURI and read the entity text from that resulting absolute URI. Note that because the older DefaultHandler.resolveEntity(), method is overridden to call this one, this method may sometimes be invoked with null name and baseURI, and with the systemId already absolutized.

Exceptions
SAXException:

Doc from org.xml.sax.ext.EntityResolver2.resolveEntity.

Any SAX exception, possibly wrapping another exception.

IOException:

Doc from org.xml.sax.ext.EntityResolver2.resolveEntity.

Probably indicating a failure to create a new InputStream or Reader, or an illegal URL.

resolveEntityback to summary
public InputSource resolveEntity(String publicId, String systemId) throws SAXException, IOException

Overrides org.xml.sax.helpers.DefaultHandler.resolveEntity.

Implements org.xml.sax.EntityResolver.resolveEntity.

Invokes EntityResolver2.resolveEntity() with null entity name and base URI. You only need to override that method to use this class.

Exceptions
SAXException:

Doc from org.xml.sax.EntityResolver.resolveEntity.

Any SAX exception, possibly wrapping another exception.

IOException:

Doc from org.xml.sax.EntityResolver.resolveEntity.

A Java-specific IO exception, possibly the result of creating a new InputStream or Reader for the InputSource.

startCDATAback to summary
public void startCDATA() throws SAXException

Implements org.xml.sax.ext.LexicalHandler.startCDATA.

Doc from org.xml.sax.ext.LexicalHandler.startCDATA.

Report the start of a CDATA section.

The contents of the CDATA section will be reported through the regular characters event; this event is intended only to report the boundary.

Exceptions
SAXException:
The application may raise an exception.
startDTDback to summary
public void startDTD(String name, String publicId, String systemId) throws SAXException

Implements org.xml.sax.ext.LexicalHandler.startDTD.

Doc from org.xml.sax.ext.LexicalHandler.startDTD.

Report the start of DTD declarations, if any.

This method is intended to report the beginning of the DOCTYPE declaration; if the document has no DOCTYPE declaration, this method will not be invoked.

All declarations reported through DTDHandler or DeclHandler events must appear between the startDTD and endDTD events. Declarations are assumed to belong to the internal DTD subset unless they appear between startEntity and endEntity events. Comments and processing instructions from the DTD should also be reported between the startDTD and endDTD events, in their original order of (logical) occurrence; they are not required to appear in their correct locations relative to DTDHandler or DeclHandler events, however.

Note that the start/endDTD events will appear within the start/endDocument events from ContentHandler and before the first startElement event.

Exceptions
SAXException:
The application may raise an exception.
startEntityback to summary
public void startEntity(String name) throws SAXException

Implements org.xml.sax.ext.LexicalHandler.startEntity.

Doc from org.xml.sax.ext.LexicalHandler.startEntity.

Report the beginning of some internal and external XML entities.

The reporting of parameter entities (including the external DTD subset) is optional, and SAX2 drivers that report LexicalHandler events may not implement it; you can use the http://xml.org/sax/features/lexical-handler/parameter-entities feature to query or control the reporting of parameter entities.

General entities are reported with their regular names, parameter entities have '%' prepended to their names, and the external DTD subset has the pseudo-entity name "[dtd]".

When a SAX2 driver is providing these events, all other events must be properly nested within start/end entity events. There is no additional requirement that events from DeclHandler or DTDHandler be properly ordered.

Note that skipped entities will be reported through the skippedEntity event, which is part of the ContentHandler interface.

Because of the streaming event model that SAX uses, some entity boundaries cannot be reported under any circumstances:

  • general entities within attribute values
  • parameter entities within declarations

These will be silently expanded, with no indication of where the original entity boundaries were.

Note also that the boundaries of character references (which are not really entities anyway) are not reported.

All start/endEntity events must be properly nested.

Exceptions
SAXException:
The application may raise an exception.