All Packages  Class Hierarchy  This Package  Previous  Next  Index

Class jumbo.xml.SAX

java.lang.Object
   |
   +----org.xml.sax.HandlerBase
           |
           +----jumbo.xml.SAX

public class SAX
extends HandlerBase

David Megginson's SAX demo, amended by PeterMR to build a simple jumbo.xml.XTree. Comments are from both authors. Where possible I have left in David's comments in case others wish to hack this code. David's code is commented out through slash-star-dash-dash.

Author:
David Megginson, 1998, Peter Murray-Rust, 1998

Variable Index

 o AELFRED
 o defaultParserClassName
 o defaultParserType
 o DXP
 o LARK
 o MSXML
 o nParserTypes
 o parserTypeStrings
 o XP

Constructor Index

 o SAX(String)
create a new SAXTree using the default parser
 o SAX(String, String)
create a new SAXTree.
 o SAX(StringReader)
Create a SAX from a UTF-16 character stream.

Method Index

 o characters(char[], int, int)
Receive notification of character data inside an element.
 o displayError(SAXParseException)
display the input and highlight the first fatal error
 o endDocument()
Receive notification of the end of the document.
 o endElement(String)
Receive notification of the end of an element.
 o error(SAXParseException)
Receive notification of a recoverable parser error.
 o fatalError(SAXParseException)
Report a fatal XML parsing error.
 o getEntityTable()
return the entity table created by SAX (null if no entities)
 o getErrorMessage(SAXParseException)
get an error message string from a SAXParseException
 o getNotationTable()
return the notation table created by SAX (null if no notations)
 o getTree()
return the XTree created by SAX
 o ignorableWhitespace(char[], int, int)
Receive notification of ignorable whitespace in element content.
 o main(String[])
Main entry point for an application.
 o notationDecl(String, String, String)
Receive notification of a notation declaration.
 o printErrors()
print the accumulated errors
 o processingInstruction(String, String)
Receive notification of a processing instruction.
 o resolveEntity(String, String)
Resolve an external entity.
 o setDocumentLocator(Locator)
Receive a Locator object for document events.
 o startDocument()
Receive notification of the beginning of the document.
 o startElement(String, AttributeList)
Receive notification of the start of an element.
 o unparsedEntityDecl(String, String, String, String)
Receive notification of an unparsed entity declaration.
 o warning(SAXParseException)
Receive notification of a parser warning.

Variables

 o AELFRED
 public static final int AELFRED
 o DXP
 public static final int DXP
 o LARK
 public static final int LARK
 o MSXML
 public static final int MSXML
 o XP
 public static final int XP
 o nParserTypes
 public static final int nParserTypes
 o parserTypeStrings
 public static final String parserTypeStrings[]
 o defaultParserType
 public static final int defaultParserType
 o defaultParserClassName
 public static final String defaultParserClassName

Constructors

 o SAX
 public SAX(String urlString) throws XException
create a new SAXTree using the default parser

Parameters:
String - urlString the URL with the XML document
Throws: XException
IO problems or parsing errors
 o SAX
 public SAX(String urlString,
            String parserClassName) throws XException
create a new SAXTree.

Parameters:
String - urlString the URL with the XML document
String - parserClassName the parser to use (as a full class name)
Throws: XException
IO problems or parsing errors
 o SAX
 public SAX(StringReader reader) throws XException
Create a SAX from a UTF-16 character stream. From DM's CharacterStreamDemo; the default parser is used. Precede this by a call of the form:
StringReader reader = new StringReader(string);

Parameters:
StringReader - reader the StringReader created from the String
Throws: XException
IO problems or parsing errors

Methods

 o resolveEntity
 public InputSource resolveEntity(String publicId,
                                  String systemId) throws SAXException
Resolve an external entity. Always return null, so that the parser will use the system identifier provided in the XML document. This method implements the SAX default behaviour: application writers can override it in a subclass to do special translations such as catalog lookups or URI redirection.

Parameters:
publicId - The public identifer, or null if none is available.
systemId - The system identifier provided in the XML document.
Returns:
The new input source, or null to require the default behaviour.
Throws: SAXException
IO problems or parsing errors
Overrides:
resolveEntity in class HandlerBase
See Also:
resolveEntity
 o notationDecl
 public void notationDecl(String name,
                          String publicId,
                          String systemId)
Receive notification of a notation declaration. By default, do nothing. Application writers may override this method in a subclass if they wish to keep track of the notations declared in a document.

Parameters:
name - The notation name.
publicId - The notation public identifier, or null if not available.
systemId - The notation system identifier.
Overrides:
notationDecl in class HandlerBase
See Also:
notationDecl
 o unparsedEntityDecl
 public void unparsedEntityDecl(String name,
                                String publicId,
                                String systemId,
                                String notationName)
Receive notification of an unparsed entity declaration. By default, do nothing. Application writers may override this method in a subclass to keep track of the unparsed entities declared in a document.

Parameters:
name - The entity name.
publicId - The entity public identifier, or null if not available.
systemId - The entity system identifier.
notationName - The name of the associated notation.
Overrides:
unparsedEntityDecl in class HandlerBase
See Also:
unparsedEntityDecl
 o setDocumentLocator
 public void setDocumentLocator(Locator locator)
Receive a Locator object for document events. By default, do nothing. Application writers may override this method in a subclass if they wish to store the locator for use with other document events.

Parameters:
locator - A locator for all SAX document events.
Overrides:
setDocumentLocator in class HandlerBase
See Also:
setDocumentLocator, Locator
 o startDocument
 public void startDocument() throws SAXException
Receive notification of the beginning of the document. By default, do nothing. Application writers may override this method in a subclass to take specific actions at the beginning of a document (such as allocating the root node of a tree or creating an output file).

Throws: SAXException
IO problems or parsing errors
Overrides:
startDocument in class HandlerBase
See Also:
startDocument
 o endDocument
 public void endDocument() throws SAXException
Receive notification of the end of the document. By default, do nothing. Application writers may override this method in a subclass to take specific actions at the beginning of a document (such as finalising a tree or closing an output file).

Throws: SAXException
IO problems or parsing errors
Overrides:
endDocument in class HandlerBase
See Also:
endDocument
 o startElement
 public void startElement(String name,
                          AttributeList attributes) throws SAXException
Receive notification of the start of an element. By default, do nothing. Application writers may override this method in a subclass to take specific actions at the start of each element (such as allocating a new tree node or writing output to a file).

Parameters:
name - The element type name.
attributes - The specified or defaulted attributes.
Throws: SAXException
IO problems or parsing errors
Overrides:
startElement in class HandlerBase
See Also:
startElement
 o endElement
 public void endElement(String name) throws SAXException
Receive notification of the end of an element. By default, do nothing. Application writers may override this method in a subclass to take specific actions at the end of each element (such as finalising a tree node or writing output to a file).

Parameters:
name - The element type name.
attributes - The specified or defaulted attributes.
Throws: SAXException
IO problems or parsing errors
Overrides:
endElement in class HandlerBase
See Also:
endElement
 o characters
 public void characters(char ch[],
                        int start,
                        int length) throws SAXException
Receive notification of character data inside an element. By default, do nothing. Application writers may override this method to take specific actions for each chunk of character data (such as adding the data to a node or buffer, or printing it to a file).

Parameters:
ch - The characters.
start - The start position in the character array.
length - The number of characters to use from the character array.
Throws: SAXException
IO problems or parsing errors
Overrides:
characters in class HandlerBase
See Also:
characters
 o ignorableWhitespace
 public void ignorableWhitespace(char ch[],
                                 int start,
                                 int length) throws SAXException
Receive notification of ignorable whitespace in element content. By default, do nothing. Application writers may override this method to take specific actions for each chunk of ignorable whitespace (such as adding data to a node or buffer, or printing it to a file).

Parameters:
ch - The whitespace characters.
start - The start position in the character array.
length - The number of characters to use from the character array.
Throws: SAXException
IO problems or parsing errors
Overrides:
ignorableWhitespace in class HandlerBase
See Also:
ignorableWhitespace
 o processingInstruction
 public void processingInstruction(String target,
                                   String data) throws SAXException
Receive notification of a processing instruction. By default, do nothing. Application writers may override this method in a subclass to take specific actions for each processing instruction, such as setting status variables or invoking other methods.

Parameters:
target - The processing instruction target.
data - The processing instruction data, or null if none is supplied.
Throws: SAXException
IO problems or parsing errors
Overrides:
processingInstruction in class HandlerBase
See Also:
processingInstruction
 o warning
 public void warning(SAXParseException e) throws SAXException
Receive notification of a parser warning. The default implementation does nothing. Application writers may override this method in a subclass to take specific actions for each warning, such as inserting the message in a log file or printing it to the console.

Parameters:
e - The warning information encoded as an exception.
Throws: SAXException
IO problems or parsing errors
Overrides:
warning in class HandlerBase
See Also:
warning, SAXParseException
 o error
 public void error(SAXParseException e) throws SAXException
Receive notification of a recoverable parser error. The default implementation does nothing. Application writers may override this method in a subclass to take specific actions for each error, such as inserting the message in a log file or printing it to the console.

Parameters:
e - The warning information encoded as an exception.
Throws: SAXException
IO problems or parsing errors
Overrides:
error in class HandlerBase
See Also:
warning, SAXParseException
 o fatalError
 public void fatalError(SAXParseException e) throws SAXException
Report a fatal XML parsing error. The default implementation throws a SAXParseException. Application writers may override this method in a subclass if they need to take specific actions for each fatal error (such as collecting all of the errors into a single report): in any case, the application must stop all regular processing when this method is invoked, since the document is no longer reliable, and the parser may no longer report non-error events.

Parameters:
e - The error information encoded as an exception.
Throws: SAXException
IO problems or parsing errors
Overrides:
fatalError in class HandlerBase
See Also:
fatalError, SAXParseException
 o getErrorMessage
 public String getErrorMessage(SAXParseException e)
get an error message string from a SAXParseException

 o getTree
 public XTree getTree()
return the XTree created by SAX

Returns:
XTree the XTree
 o getEntityTable
 public Hashtable getEntityTable()
return the entity table created by SAX (null if no entities)

Returns:
Hashtable the hashtable of entities
 o getNotationTable
 public Hashtable getNotationTable()
return the notation table created by SAX (null if no notations)

Returns:
Hashtable the hashtable of notations
 o printErrors
 public void printErrors()
print the accumulated errors

 o displayError
 public void displayError(SAXParseException spe)
display the input and highlight the first fatal error

 o main
 public static void main(String args[]) throws Exception
Main entry point for an application.

Throws: Exception
almost anything in the galaxy could go wrong

All Packages  Class Hierarchy  This Package  Previous  Next  Index