This is a good point to review the packages that make up the Java XML library, their purpose, and their classes. The different package names reflect the different origins of the code. The Java interfaces came from Sun Microsystems, the DOM implementation came from the W3C, and the SAX parser implementation came from yet a third organization.
Package: javax.xml.parsers
Purpose: Is the Java interface to the XML standard for parsing.
Contains these classes/interfaces: DocumentBuilderFactory, DocumentBuilder, SAXParserFactory, SAXParser. These get instances of a Parser and undertake a parse on an XML file.
Package: javax.xml.transform
Purpose: is the Java interface to the XML standard for tree transformation
Contains: classes to convert an XML tree into an HTML file or XML with a different DTD. Tree transformation is beyond the scope of this text, but you can read more about it by searching for “transform” at java.sun.com.
Package: org.w3c.dom
Purpose: has the classes that make up a DOM tree in memory
Contains these classes/interfaces: Node
plus its subtypes: Document
, DocumentType
, Element, Entity
, Attr
, Text
, etc.
Package: org.xml.sax
Purpose: has the classes that can be used to navigate the data returned in a SAX parse
Contains: two packages org.xml.sax.ext
(extensions) and org.xml.sax.helpers
plus these classes/interfaces: Attributes
, ContentHandler
, EntityResolver
, DTDHandler
, XMLReader
. The helpers package contains the DefaultHandler
class which is typically extended by one of your classes to handle a SAX parse, as explained below.
All the listed packages are kept in a file called jaxp.jar. The JAXP distribution also includes two other jar files: crimson.jar and xalan.jar. Crimson.jar holds the DOM and SAX parser implementations. Xalan.jar contains the implementation of the xml transformation interface. Make sure that the right jar files are in your path for the features you are using.
Because of the seemingly unrelated package names, XML parsing may appear a little unorganized. Just remember it this way: You always need the java.xml.parsers package. And you need the package with “dom” in its name to do a DOM parse, or “sax” in its name to do a SAX parse. The SAX packages also have the error-handling classes for both kinds of parse.
3.144.9.124