XML

I was wondering if some one could point me to
a good tutorial on XML parsing and generating
using the Xerces DOM parser…

I looked a bit through their docs and didn’t find
it too helpful.

I’m kinda looking for the crash course of all
XML tutorials on Xerces.

If anyone have a link to one of those handy.

Thanks in advance.
Much appriciated.

It depends on what you’re trying to do and how newless of a clubie that you are. If you’re not up to speed on DOM’s (or SAX for that matter) then do your research on that first. If you’re up to speed on DOM then get the JavaDocs for Xerces and look over them for a few minutes. You’ll see quickly that they parallel the DOM exactly. If you need more insight, there’s some good articles at www.javaworld.com (use the search).

If you’re XML savvy, you might want to consider using XPath and DOM4J. XPath takes all of the tediousness out of walking the DOM if you’re just looking for certain nodes. DOM4J is just MUCH easier to use with XPath (and, well, DOM for that matter).

I, too, would recommend not to use raw DOM/SAX but some nicer high level API. My favorite is Elliotte Rusty Harold’s XOM [1] which provides a clean and simple approach to XML. There’s also a tutorial on its home page.

[1] http://www.cafeconleche.org/XOM/

Well I’ve found the built-in DOM APIs in Java 1.4 to be very easy to use and straightforward. I wrote a couple helper methods that build on it to simplify some things… but that’s about it.

I would like to use XML more effectively. Something like castor or, er I dunno. I’ve found just using DOM to be tedious and there’s very little code reuse. I’d love to just run an XML document through a factory and out pops a Java object. But even with that said I’m still not sure castor is exactly what I want.

Oh, and I thought Sun’s XML tutorials were pretty good:
http://java.sun.com/xml/tutorial_intro.html

JAXB - Java Architecture for XML Binding existed to do exactly this… pass the XML scheme through a processor and out popped a bunch of parsing objects.

http://java.sun.com/xml/jaxb/

Kev

Thanks for the replies guys.
I guess for now I know what I’m looking for…
I’m gonna stick to JDOM (http://www.jdom.org/)
Which doesn’t seem to be really popular…
although I find it helpful.

I tried the xerces stuff… I don’t think they have
really good documentation (as in examples).

And I guess I’m just lazy and didn’t want to dig at the JavaDocs :slight_smile:

Is there any shortcomings to JDOM which I
should be aware of? Since I don’t see its name
mentioned much…

Your focus on Xerces in particular is misguided. Xerces is just one parser that implements JAXP. What you should be focusing on is learning JAXP. It’s like saying you’re going to “learn how to operate a toyota” instead of “learn to drive a car”.

Did you look at Sun’s tutorial on JAXP? It’s pretty good.

JDOM is just fine, it’s a nice library. It’s not as popular because it’s proprietary, is not backed by Sun, and is Java only.

Doesn’t the DOM style of parser load the whole thing into memory in a Tree kind of way while the JAXP type treats it in a more event-based fashion, or did I dream that?

I’ve used JAXP for years, so I haven’t thought about why I chose it for quite a while…

No, you are thinking of DOM vs. SAX. JAXP has implementations for both DOM and SAX I believe.
DOM does represent the document as a tree of nodes in memory. SAX is event based and works on the fly as it reads the XML data from the source.

For most things Crimson (which is part of the JRE) is just fine.
When you want better validation (schema support) you should look at Xerces. Also, Xerces seems to handle very large XML files better than Crimson (loading a 4Mb XML in a Document object takes ages in Crimson for example).