Magazine
 
XML- SAX Parser using JAXP API
 

Understanding SAX Parser

At the very first, create an instance of the SAXParserFactory class, which generates an instance of the parser. This parser wraps a SAXReader object. When the parser’s parse() method is invoked, the reader invokes one of the several callback methods (implemented in the application). These callback methods are defined by the interfaces ContentHandler, ErrorHandler, DTDHandler, and EntityResolver.



Brief description of the key SAX APIs:

SAXParserFactory:


SAXParserFactory object creates an instance of the parser determined by the system property, using the class javax.xml.parsers.SAXParserFactory.

SAXParser:

The SAXParser interface defines several kinds of parse() methods. Generally, XML data source and a DefaultHandler object is passed to the parser. This parser processes the XML file and invokes the appropriate method on the handler object.

SAXReader:

The SAXParser wraps a SAXReader (may use

 

SAXParser’s getXMLReader() and configure it). It is the SAXReader, which carries on the conversation with the SAX event handlers you define.

DefaultHandler:

Not shown in the diagram, a DefaultHandler implements the ContentHandler, ErrorHandler, DTDHandler, and EntityResolver interfaces (with null methods). You override only the ones you’re interested in.

ContentHandler:


Methods like startDocument, endDocument, startElement, and endElement are invoked when an XML tag is recognized. This interface also defines methods characters and processingInstruction, which are invoked when the parser encounters the text in an XML element or an inline processing instruction, respectively.

ErrorHandler:

Methods error, fatalError, and warning are invoked in response to various parsing errors. The default error handler throws an exception for fatal errors and ignores other errors (including validation errors). To ensure the
correct handling, you’ll need to supply your own error handler to the parser.

DTDHandler:

Defines methods you will rarely call. Used while processing a DTD to recognize and act on declarations for an unparsed entity.

EntityResolver:


The resolveEntity method is invoked when the parser needs to identify the data referenced by a URI. .

Lets see an example of parsing an XML document using Java SAX Parser. In this section, we are going to develop a simple Java program named EmpSaxParser.java that first determines whether a XML document is wellformed
or not then retrieves data from XML

     
Feb  2008 | Java Jazz Up |27
 
previous
index
next
 
View All Topics
All Pages of this Issue
Pages: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,

30
, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53 , 54, 55, 56, 57,

58
, 59, 60, 61, 62, 63 , 64, 65 , 66 , 67 , 68 , 69 , 70 , 71 , 72 ,

Download PDF