Trademark Logo Apache Xalan Project
The Apache Xalan Project
Apache Foundation Xalan Project Xerces Project Web Consortium Oasis Open

The Apache Xalan Project

We are proud to release version 2.7.3 of our Xalan Java project.

The Apache Xalan Project develops and maintains libraries and programs that transform XML documents using XSLT standard stylesheets. Our subprojects use the Java and C++ programing languages to implement the XSLT libraries.

The Apache Xalan Project was reformed in 2011. It started as a subproject of Apache XML which has since been officially retired. The Apache Xalan Project continues as a top-level project governed by the Apache Software Foundation as a collaborative software development community dedicated to providing robust, full-featured, commercial-quality, and freely available XSLT support on a wide variety of platforms.

The supported specifications are defined by the W3C XSL Transformations (XSLT) Version 1.0 and the XML Path Language (XPath) Version 1.0 recommendations.


The project name and logo are derived from the ancient Xalam musical instrument found in Africa. Note the difference in spelling. The project name and logo are trademarks of the Apache Software Foundation.


Apache Xalan Projects

There are currently two subprojects under the Apache Xalan Project: Xalan C++, and Xalan Java, representing C++ and Java implementations of the W3C XSL Transformations (XSLT) Version 1.0 and the XML Path Language (XPath) Version 1.0 recommendations.

Both the Java and C++ development teams provide libraries and executable programs to transform XML documents using XSLT stylesheets.


Xalan C++ Project

The Xalan-C project officially released version 1.12 on the 7th June, 2020. The focus of this release was stability and compatibility, fixing critical bugs and updating the codebase to work with modern C++ standards and compilers, and adding a CMake-based build to support all platforms with a single well-supported build tool. The full changes are documented in the Release History.

Xalan-C 1.12 supports C++ development and has been successfully tested on the following platforms:

Xalan-C should work on any platform supported by CMake with a standard C++ compiler.

Older releases are available on the Apache Archives.


Xalan Java Project

The Xalan-Java 2.7.3 was released in April 2023. You may download the current Xalan-Java release Xalan-Java 2.7.3 for your development. The current work in progress can be found in the git repository.

The current release among other Xalan-J implementation features, fixes a Xalan-J XSLTC security issue that was registered against version 2.7.2.

Many of the earlier Xalan-J distributions are still available on the Apache Archives.

This is a mature project. There has been some discussion about supporting XPath-2. We could use your support in this major rework of the library. You can follow the efforts and post your own contributions on the Java users and developers mail lists.


What is XSLT and XPath?

XSLT is the first part of the Extensible Stylesheet Language (XSL). It includes the XSL Transformation (XSLT) vocabulary and XPath, a language for addressing parts of XML documents. XSL also includes a vocabulary for specifying formatting semantics, however, this is not part of the Apache Xalan Project. For more information on formatting objects, see the Apache XML Graphics (Formatting Objects Project).

XSLT implementations, sometimes referred to as XSLT processors, use an XSL stylesheet to transform XML documents into HTML, text, or other XML document types. In structural terms, an XSL stylesheet specifies the transformation of one tree of nodes (the XML input) into another tree of nodes (the output or transformation result).


License information

Xalan C++ and Xalan Java are made available under the Apache Software License, Version 2.0.


Getting Involved

We always appreciate people and organizations that wish to help in the development and project support efforts.

You can follow the activity by reviewing the project mail lists. Posting messages to these lists is how we coordinate the activites related to the our projects.

The developers mail list [xalan-dev] is for communicating issues to the Apache Xalan development teams. Both the Java and C/C++ groups monitor the developers list. All project change notices are posted to the developers list.

Each subproject has its own mail list for project specific user issues.

The user list for Xalan C++ [xalan-c-users] is for general user comments on the Xalan C++ project.

The user list for Xalan Java [xalan-j-users] is for general user comments on the Xalan Java project.

The Apache Software Foundation has guidance on how to participate in the various development efforts.



Xerces and Xalan do what the XML specifications require by default. In some cases, this may not be appropriate behavior when working with untrusted input: the XML Security Overview mentions some potential risks. There are multiple methods for blocking access to external entities and for disallowing DOCTYPE declarations, and it is up to the downstream user of Xalan to block/reject these constructs where appropriate.

If you think you have found a security issue in Apache Xalan, please follow the reporting guidelines