JDOM is, quite simply, a Java representation of an XML document. JDOM provides a way to represent that document for easy and efficient JDOM provides a way to represent that document for easy and efficient reading, manipulation, and writing. It has a straightforward API, is a lightweight and fast, and is optimized for the Java programmer. Its an alternative to DOM and SAX, although it integrates well with both DOM and SAX.
At a high level XMLBeans is an XML-Java binding tool that uses XML Schema as a basis for generating Java classes that you can use to XML Schema as a basis for generating Java classes that you can use to easily access XML instance data in a natural manner in your Java programs. It was designed to provide both easy access to XML information via convenient Java classes as well as complete access to the underlying XML, combining the best of low-level APIs like SAX and DOM that provide full access with the convenience of Java binding. There are several factors that set XMLBeans apart from any other XML-Java binding alternatives: * XML Schema Compliance - XMLBeans has achieved extremely high * XML Schema Compliance - XMLBeans has achieved extremely high schema compliance and is able to compile even the most complex schemas. This is critical when adopting an XML-Java binding framework since you may received schemas that are out of your control. * Access to the full underlying XML Infoset - The XML Cursor API allows you to access a lower level DOM like access to the underying XML Infoset. You can get a cursor at any point while using the strongly typed generated XMLBeans and begin navigating the underlying XML instance. * Access to the schema type system - The XMLBeans schema API allows you to walk through the schema type system giving you full access to a Java object representation of the XML Schema that was compiled to generate the XMLBeans classes. * Speed - XMLBeans is optimized for performance at many levels. For example, XMLBeans lazily constructs objects from XML, so that you do not have the performance overhead of object creation when you only access portions of an XML document. Several Fortune 500 customers have adopted XMLBeans based on speed alone.
The Xerces Java Parser 1.4.4 supports the XML 1.0 recommendation and contains advanced parser functionality, such as support for the and contains advanced parser functionality, such as support for the W3Cs XML Schema recommendation version 1.0, DOM Level 2 version 1.0, and SAX Version 2, in addition to supporting the industry-standard DOM Level 1 and SAX version 1 APIs.
XOM is a new XML object model. It is an open source (LGPL), tree-based API for processing XML with Java that strives for correctness tree-based API for processing XML with Java that strives for correctness and simplicity.
Jakarta Common Designer
Many Jakarta projects read XML configuration files to provide initialization of various Java objects within the system. There are initialization of various Java objects within the system. There are several ways of doing this, and the Digester component was designed to provide a common implementation that can be used in many different projects. Basically, the Digester package lets you configure an XML -> Java object mapping module, which triggers certain actions called rules whenever a particular pattern of nested XML elements is recognized. A rich set of predefined rules is available for your use, or you can also create your own. Advanced features of Digester include: * Ability to plug in your own pattern matching engine, if the * Ability to plug in your own pattern matching engine, if the standard one is not sufficient for your requirements. * Optional namespace-aware processing, so that you can define rules that are relevant only to a particular XML namespace. * Encapsulation of Rules into RuleSets that can be easily and conveniently reused in more than one application that requires the same type of processing.
XStream is a simple library to serialize objects to XML and back again. again.
dom4j is an easy to use, open source library for working with XML, XPath and XSLT on the Java platform using the Java Collections XML, XPath and XSLT on the Java platform using the Java Collections Framework and with full support for DOM, SAX and JAXP
The Java Architecture for XML Binding (JAXB) provides a fast and convenient way to bind between XML schemas and Java representations, convenient way to bind between XML schemas and Java representations, making it easy for Java developers to incorporate XML data and processing functions in Java applications
Piccolo XML Parser
Piccolo is a small, extremely fast XML parser for Java. It implements the SAX 1, SAX 2.0.1, and JAXP 1.1 (SAX parsing only) implements the SAX 1, SAX 2.0.1, and JAXP 1.1 (SAX parsing only) interfaces as a non-validating parser and attempts to detect all XML well-formedness errors.
XP is an XML 1.0 parser written in Java. It is fully conforming: it detects all non well-formed documents. It is currently not a it detects all non well-formed documents. It is currently not a validating XML processor. However it can parse all external entities: external DTD subsets, external parameter entities and external general entities.
JiBX: Binding XML to Java Code
JiBX is a framework for binding XML data to Java objects. It lets you work with data from XML documents using your own class structures. you work with data from XML documents using your own class structures. The JiBX framework handles all the details of converting your data to and from XML based on your instructions. JiBX is designed to perform the translation between internal data structures and XML with very high efficiency, but still allows you a high degree of control over the translation process.
Woodstox is a fast Open Source StAX-compliant XML-processor written in Java (processor meaning it handles both input (== parsing) written in Java (processor meaning it handles both input (== parsing) and output (== writing, serialization)).
StAX is a standard XML processing API that allows you to stream XML data from and to your application. Its a standard pull parser XML data from and to your application. Its a standard pull parser implementation for the java platform.
VTD-XML is the next generation XML parser that goes beyond DOM and SAX in terms of performance, memory and ease of use. To XML and SAX in terms of performance, memory and ease of use. To XML developers, VTD-XML is simple and just works! Other innovative features include XML indexing (due to inherent persistence of VTD) and incremental update. It is also the worlds fastest XML processor: On an Athlon64 3400+ PC, VTD-XML significantly (1.5x~2x) outperforms SAX parsers with NULL content handler, delivering 50~60 MB/sec sustained throughput, without sacrificing random access. Its memory usage is typically between 1.3x~1.5x the size of the XML document, with 1 being the XML itself.
Zeus is, in a nutshell, an open source Java-to-XML Data Binding tool. It provides a means of taking an arbitrary XML document and tool. It provides a means of taking an arbitrary XML document and converting that document into a Java object representing the XML. That Java object can then be used and manipulated like any other Java object in the VM (virtual machine). Then, once the object has been modified and operated upon, Zeus can be used to convert the Java object back into an XML representation.
NanoXML is a small XML parser for Java. NanoXML comes in three different components: different components: * NanoXML/Java - The standard parser for Java. * NanoXML/Java - The standard parser for Java. * NanoXML/SAX - A SAX adapter for NanoXML/Java. * NanoXML/Lite - An extremely small (6KB) XML parser which is the successor of NanoXML 1. It only provides a limited functionality: no mixed content and the DTD is ignored.
NekoPull is an XML document parsing API that extends the Xerces Native Interface (XNI) to provide pull parsing functionality. The pull Native Interface (XNI) to provide pull parsing functionality. The pull parsing paradigm is different from tree-based APIs like the Document Object Model (DOM) and event stream APIs like the Simple API for XML (SAX) in that the application controls the parsing of documents. NekoPull is similar to lex in that the application requests, or pulls, the document information one piece at a time instead of having document information pushed to the application.
Skaringa is an API for Java and XML language binding. It transforms Java objects into XML documents and back, and can generate transforms Java objects into XML documents and back, and can generate XML schema definitions for a Java class. Typical applications are data exchange, object persistence, object transformation, and driving XML based presentation layers. Skaringa is designed for speed and simplicity, supporting a wide range of types. Skaringa works with all Plain Old Java Objects (POJOs), it is not limited to special cases, like JavaBeans.
XML 2 Java Binding
XML 2 Java Binding (X2JB) is a Java development tool intended for binding of XML entities to Java interfaces and classes (but not vice binding of XML entities to Java interfaces and classes (but not vice versa). In theory it is kind of like JAXB, XML Beans or Jakarta Commons Digester but without their complexity. It uses annotations to map attributes and elements into a Java class.