apache.org > XML Federation > xerces.apache.org
Font size:      

The Apache Xerces™ Project - xerces.apache.org

Welcome to the Apache Xerces™ Project

The Apache Xerces™ Project is responsible for software licensed to the Apache Software Foundation intended for the creation and maintenance of:

  • XML parsers
  • related software components

Over a Decade at the Apache Software Foundation

In November 2009, Xerces celebrated ten years of life at the ASF (which also celebrated its tenth anniversary). We've come a long way from the initial code donations in 1999, starting as a member of the XML project, eventually becoming a top-level project in 2005, over the years creating new generations of Xerces Java and C++ within the community, with many releases and hopefully many more in the years to come.

Apache Xerces Project - Current Projects

The Apache Xerces Project currently consists of the following sub-projects, each focused on the development of XML parsers and related components in various languages:

  • Apache Xerces C++ - A processor for parsing, validating, serializing and manipulating XML, written in C++
  • Apache Xerces2 Java - A processor for parsing, validating, serializing and manipulating XML, written in Java
  • Apache Xerces Perl - A processor for parsing, validating, serializing and manipulating XML, written in Perl
  • Apache XML Commons - A collection of XML components and utilities, including a catalog resolver and various XML APIs

Apache Xerces C++

Xerces-C++ is a validating XML parser written in a portable subset of C++. Xerces-C++ makes it easy to give your application the ability to read and write XML data. A shared library is provided for parsing, generating, manipulating, and validating XML documents. Xerces-C++ is faithful to the XML 1.0 and 1.1 recommendations and many associated standards.

The parser provides high performance, modularity, and scalability. Source code, samples and API documentation are provided with the parser. For portability, care has been taken to make minimal use of templates, no RTTI, and minimal use of #ifdefs.

Find out more about Apache Xerces C++.

Apache Xerces2 Java

Xerces2 Java is a library for parsing, validating and manipulating XML documents.

Xerces 2.x introduced the Xerces Native Interface (XNI), a complete framework for building parser components and configurations that is extremely modular and easy to program. XNI is merely an internal set of interfaces. There is no need for an XML application programmer to learn XNI if they only intend to interface to the Xerces2 parser using standard interfaces like JAXP, DOM, and SAX. Xerces developers and application developers that need more power and flexibility than that provided by the standard interfaces should read and understand XNI.

The latest version released, 2.12.2, provides support for the following standards and APIs:

  • XML 1.0 (4th Edition)
  • Namespaces in XML 1.0 (2nd Edition)
  • XML 1.1 (2nd Edition)
  • Namespaces in XML 1.1 (2nd Edition)
  • W3C XML Schema 1.0 (2nd Edition)
  • W3C XML Schema 1.1
  • W3C XML Schema Definition Language (XSD): Component Designators (Candidate Recommendation, January 2010)
  • XInclude 1.0 (2nd Edition)
  • OASIS XML Catalogs 1.1
  • SAX 2.0.2
  • DOM Level 3 Core, Load and Save
  • DOM Level 2 Core, Events, Traversal and Range
  • Element Traversal (org.w3c.dom.ElementTraversal)
  • JAXP 1.4
  • StAX 1.0 Event API (javax.xml.stream.events)

Find out more about Apache Xerces2 Java.

Apache Xerces Perl

XML::Xerces is the Perl API to the Apache project's Xerces XML parser. It is implemented using the Xerces C++ API, and it provides access to most of the C++ API from Perl. Because it is based on Xerces-C, XML::Xerces provides a validating XML parser that makes it easy to give your application the ability to read and write XML data. Classes are provided for parsing, generating, manipulating, and validating XML documents. XML::Xerces is faithful to the XML 1.0 and 1.1 recommendations and associated standards (DOM levels 1, 2, and 3, SAX 1 and 2, Namespaces, and W3C XML Schema).

The parser provides high performance, modularity, and scalability, and provides full support for Unicode. XML::Xerces implements the vast majority of the Xerces-C++ API (if you notice any discrepancies please mail the list). The exception is some functions in the C++ API which either have better Perl counterparts (such as file I/O) or which manipulate internal C++ information that has no role in the Perl module. The majority of the API is created automatically using Simplified Wrapper Interface Generator (SWIG). However, care has been taken to make most method invocations natural to perl programmers, so a number of rough C++ edges have been smoothed over (See the Special Perl API Features section).

Find out more about Apache Xerces Perl.

Apache XML Commons

Apache XML Commons provides an Apache-hosted set of SAX, DOM and JAXP interfaces for use in other xml-based projects. It is also home to the XML Commons Resolver, a component which can be used in a wide variety of XML parsing, processing and related programs to resolve various public or system identifiers into accessible URLs for use by your application. The resolver supports several catalog types for mapping, including OASIS XML, OASIS TR 9401 and XCatalog styles.

Find out more about Apache XML Commons.