File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes XML and Related Technologies and the fly likes Default XML parser: SAX or DOM? Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login

Win a copy of Java Interview Guide this week in the Jobs Discussion forum!
JavaRanch » Java Forums » Engineering » XML and Related Technologies
Bookmark "Default XML parser: SAX or DOM?" Watch "Default XML parser: SAX or DOM?" New topic

Default XML parser: SAX or DOM?

Ricky Murphy
Ranch Hand

Joined: Oct 16, 2007
Posts: 31

When I created DOM object from an incoming XML stream (XML string), I use

DocumentBuilderFactory dbf =
DocumentBuilder db = dbf.newDocumentBuilder();
InputStream is = //incoming Stream
Document doc = db.parse(is);

As I learned that by default, the DocumentBuilderFactory uses the built-in XML parser that comes with JAXP. How do I know what type of XML parser that is? I think that I can try to look up the System Property "javax.xml.parsers.DocumentBuilderFactory" to see what parser class that is used as default. But, how can I know what type of parser it is? I mean is that a SAX parser or DOM parser?

Also, in Java there is a class SAXParser. it also has a overloaded parse method which takes various type of input parameters. How is this class being used? any samples that you can share? the parse method in SAXParser is defined with a void, which indicates not return anything, not like the parse method above from DocumentBuilder which returns a Document. I seem to have some confusion here.

Thank you.

William Brogden
Author and all-around good cowpoke

Joined: Mar 22, 2000
Posts: 13037
I mean is that a SAX parser or DOM parser?

All DOM parsers are built on top of SAX parsers. Think about it - there is no other way to build a DOM - you have to look at every part of the input stream - in other words an SAX parser.

I agree. Here's the link:
subject: Default XML parser: SAX or DOM?
It's not a secret anymore!