Xalan is a specification for transforming Extensible Markup Language (XML) documents into Hypertext Markup Language (HTML) or other XML document types. Xalan-Java version 1.2 is based on World Wide Web Consortium (W3C) recommendations for Extensible Stylesheet Language Transformations (XSLT) and XML Path Language (XPL). Xalan normally uses the Xerces XML parser, but it can use any parser that conforms to either Document Object Model (DOM) level 2 or Simple API for XML (SAX) level 1.
Xalan-Java version 2 recasts Xalan as an implementation of Transformations for XML (TraX) interfaces. TRaX provides a modular framework and a standard application programming interface for performing an open-ended range of XML transformations. In conjunction with TRaX, Xalan-Java 2 relies on system properties to configure its operational settings. The default settings point to the Xalan stylesheet processor, the serializers shipped with Xalan, and the Xerces SAX parser. Xalan-Java version 2 builds on SAX level 2, DOM level 2, and the Java API for XML Parsing.
Xalan-C++ version 1.0 is an implementation of W3C recommendations for XSLT and XPath. It uses the Xerces-C++ version 1.3.0 XML parser.
LotusXSL, which used to be a specification in its own right, has been recast as a sub-specification of Xalan.