The Xalan-C++ project creates and distributes a standard XSLT library
and a simple
Xalan command-line utility for
transforming XML documents.
This project is written in a reduced set of the C++ programming language. This makes the library directly usable on numerous platforms. A set of ‘C’ language APIs is also available so that XSLT and XPath functionality is easily deployed to ‘C’ language applications.
Sample programs are available for you to test and experiment with as you learn the Xalan library.
Some of the EXSLT extension functions for XPath are available. We need to write and validate more of the EXSLT functions. A library of XPath extensions is provided by the Apache Xalan community. Documentation and examples are available for you to write your own custom XPath extensions.
The Xalan-C++ software conforms to The Apache Software Foundation License, Version 2.0.
You are invited to participate in The Apache Software Foundation. You will need to subscribe if you wish to receive mail from the lists. Some lists require a subscription in order to post messages.
The xalan-c-users (
firstname.lastname@example.org) mailing list is used
to discuss issues regarding the use of the Xalan-C++ software and
libraries. The xalan-c-users messages are
You can clone a private copy of the repository using either service.
The JIRA system is used for issue tracking. You must create an account before you can post messages and files to the JIRA tracking system. You can view the issues at https://issues.apache.org/jira/projects/XALANC.
Xalan-C++ implements the following specifications from the World Wide Web Consortium (W3C).
The next major release of Xalan-C++ will hopefully be compatible with the following standards:
This added support will require a major version change from 1 to 2.
Xalan-C++ uses the The Apache Software Foundation Xerces-C project that implements parsers for XML 1.0 and XML 1.1. The following standards as specified by the World Wide Web Consortium (W3C) are implemented by the Xerces-C++ XML parser library:
Xerces-C++ also supports the SAX 1.0 and SAX 2.0 projects. SAX is primarily Java based. The Xerces-C++ project has implemented a SAX C++ API that looks much like the SAX Java API.
Web Services and Web Security recommendations have been developed by the World Wide Web Consortium (W3C) and OASIS-OPEN Advancing open standards for the information society. Xerces-C++ has support for custom entity resolvers which are inherited and supported by the Xalan-C++ library.
The Xalan-C++ library has hooks so that custom entity resolvers can be deployed. The entity resolvers are actually interfaces into the Xerces-C++ XML Parser Library. Use of trusted entity resolvers greatly increases the security of XML based applications.
The Web Services Architecture uses specifications and recommendations that are documented by the following organizations:
There are some architecture security issues that should be addressed by any XML parser or XSLT transformation application. Other than validating and cleaning the content of XML elements, the access to untrusted external entities is a big problem for security management.
Xalan command-line transformation program does
not deploy an OASIS catalog or perform other security measures. URLs
are resolved using the system directory of the local machine and DNS to
resolve host locations. The
Xalan program should be used only with
trusted XSLT stylesheets and XML documents on a trusted computer.
A future release of the
Xalan command-line transformation program may
include support for an OASIS entity resolver catalog.
Information on creating Secure Web Service Applications is useful for review. This security overview document goes beyond the scope of XSLT transformations and asks many pertinent security based questions.
The current Xalan-C++, Version 1.12, is compatible with the stable releases of Xerces-C++, Version 3.0 and newer. The current stable release for Xerces-C++ is 3.2.3.
If you are having problems using the product, send your comments to the
email@example.com) mailing list.
If you think a change needs to be made or have suggestions for future
releases, send your comments to the xalan-dev
firstname.lastname@example.org) mailing list.