1. Overview

This is a guide to working with XML in Java.

We’ll go over the most common Java XML processing libraries – for both parsing and binding.

2. DOM Parsers

Simply put, a DOM parser works on the entire XML document, loads it into memory and constructs a tree representation of the document.

2.1. Useful Resources

3. SAX Parser

A SAX parser is an event-based parser – it parses the XML document using callbacks without loading the whole document into memory.

3.1. Useful Resources

 
4. StAX Parser
 
A StAX Parser is median between DOM and SAX parser.

4.1. Useful Resources

5. JAXB

JAXB – Java Architecture for XML Binding – is used to convert objects from/to XML.

JAXB is a part of the Java SE platform and one of the APIs in Jakarta EE.

5.1. Useful Resources

6. XStream

XStream is a simple library to serialize objects to/from XML.

6.1. Useful Resources

 
7. Jackson XML

Jackson XML is an extension of the Jackson JSON processor for reading and writing XML encoded data.

7.1. Useful Resources

8. Apache CXF Aegis

Aegis is a data binding or a subsystem that can map between Java objects and XML documents described by XML schemas.

8.1. Useful Resources

9. JiBX

JiBX is a tool for binding XML data to Java objects. It provides solid performance compared to other common tools such as JAXB.

9.1. Useful Resources

 
10. XMLUnit 2

XMLUnit 2.x is a powerful library that helps us test and verify XML content, and comes in particularly handy when we know exactly what that XML should contain.

10.1. Useful Resources

11. Conclusion

This was a quick intro to the XML ecosystem in Java.

Use this as a guide to learn more about doing XML work and getting a high-level view of the Java XML landscape.

We also have a collection of articles on this topic, if you wish to see links to all our XML content in one place.