The STS XML Homepage
Table of Contents
- Software
- Parsers
- Transformers
- Validators
- Databases
- Editors
- Literature
- Books
- Articles
- Standards
- Tutorials
1 Software
1.1 Parsers
Two well-known interfaces for parsing XML document in Java are SAX and DOM.
SAX is event-based, this means, that a method is called every time an XML event occurs
during the parsing of the document. Events are things like "beginning of element", "end of
docuement", etc. This is obviously a good approach if you want to process your XML docuement
in document order
DOM on the other hand loads a whole tree of objects representing the document.
This has much higher memory requirements than the SAX approach. However, you get a generic interface
of XML docuemnts that lets you navigate to any point of the document any time (as opposed to
the only sequential access you get with SAX.)
There are also other parsing libraries available (many more than mentioned here) that
will allow access from Java to XML documents.
- The XERCES XML Parser for Java. This includes
SAX and DOM interfaces. We have assembled some hints on Xerces.
- XML Beans: A Java-XML binding with full schema support. It does
not just use schema to generate classes but also helps you to create valid instances.
- Castor: XML Schema based XML-Java binding. Also does relational
databases.
- JAX-B is an API to create and use Java to XML bindings based on XML schema. You can find
Sun's implementation.
We have a example build.xml for ant, that shows how to run JAXB.
1.2 Transformers
1.3 Validators
- MSV: Sun's Multi-Schema-Validator is a Java
library that lets you validate against a variety of schema formats (including XML Schema, DTDs, Relax NG).
- xmllint: command line tool for validation (DTD and XML schema) found in the Unix/Linux/MacOS X libxml2 package.
You find the documentation online.
- JAXP XML parsers have validation built-in. See for example Xerces.
Plenty of online validators: For example Here (MS based)
and here (Xerces based)
1.4 Databases
1.4.1 Native
A native XML database (NXD) is a database that is specifically written to store XML.
NXDs optimize for XML storage. NXDs usually provide element-level storage, giving you
full query access to each element of your XML docuements.
- eXist: Native XML database implemented in Java (opensource) that as
ann (almost) full XQuery implementation.
xindice is another native (and opensource) XML database.
Not as many features as eXist.
- Tamino: Commercial XML database
by Software AG.
1.4.2 RDBMS based
RDBMS based XML databases use an existing relational database and put in some additional
functionality to also store and process XML. Be aware that "XML support" for some vendors
only means that you can put XML content into a TEXT field. You often don't get any
query capabilities, let alone ones based on XPath or XQuery.
1.5 Editors
- XML Spy: The well-known XML editor for Windows. There is a free
Home Edition available.
- XML Buddy: XML editor Plugin for the Eclipse platform.
2 Literature
2.1 Books
2.2 Articles
2.3 Standards
If you need to know things for sure (e.g. because your thesis is built on this) it is a bad
idea to rely on tutorials. Tutorials tend to leave things out or at least to simplify them.
In this case you will actually have to read the standards.
2.3.1 W3C Recommendations
There is lots of stuff at the W3C.
Some of the more important items include:
XML itself,
XML Schema,
XPath,
XML Query,
XSL
2.3.2 OASIS
RELAX NG
2.4 Tutorials
Sebastian Bossung