Generated by GPT-5-mini| Xalan | |
|---|---|
| Name | Xalan |
| Developer | Apache Software Foundation, IBM, Oracle Corporation |
| Released | 1999 |
| Latest release | 2.7.3 |
| Programming language | Java (programming language), C++ |
| Operating system | Cross-platform software |
| License | Apache License |
| Genre | Extensible Stylesheet Language Transformations |
Xalan is an open-source XSLT processor originally developed to transform Extensible Markup Language documents using Extensible Stylesheet Language stylesheets. It was produced through collaborations among vendors and open-source communities including the Apache Software Foundation, IBM, and Oracle Corporation, and has been distributed for use across Linux, Microsoft Windows, and macOS environments. Xalan provided both Java (programming language) and C++-based implementations and integrated with projects such as Apache Ant, Apache Cocoon, and Apache Tomcat for XML/XSLT processing in server-side and build automation scenarios.
Xalan's lineage traces to vendor efforts to implement Extensible Stylesheet Language Transformations standards published by the World Wide Web Consortium. Early work in the late 1990s and early 2000s involved contributions from IBM and other commercial organizations, with the project later entering incubation and full project status at the Apache Software Foundation. Xalan competed and inter-operated with processors such as Saxon (software), libxslt, and MSXML in web services, portal, and publishing stacks. Over its lifecycle Xalan influenced related projects including Xerces (parser), XalanJ2, and integration modules for Eclipse (software), NetBeans, and Maven (software project management).
Xalan is structured as a transformer engine layered atop XML parsing and tree models. In the Java variant Xalan-J, the architecture relies on a Document Object Model implementation from Apache Xerces to represent input XML (eXtensible Markup Language), and a stylesheet compiler that emits an executable form of XSLT 1.0 templates. The runtime includes a template matcher, instruction executor, and output serializer compatible with XHTML, HTML 4.01, and XML serialization rules. The C++ version integrates with platform-specific parsers and provides bindings suitable for embedding in native applications on Windows API-based software or POSIX-compliant systems. Components often referenced in deployment are transformer factories used by Java API for XML Processing callers, extension function hooks for Jakarta EE containers, and integration adapters for Apache Ant tasks and Apache Maven plugins.
Xalan implements the XSLT 1.0 recommendation and provides many of the extension mechanisms commonly used in production. It supports node-set operations, XPath querying via XPath 1.0 semantics, template matching, and instruction sets such as apply-templates and for-each. While Xalan predates later recommendations, it interoperates with serialization profiles for XHTML and XML outputs and provides facilities for extension functions implemented in Java (programming language) or C++. The project did not fully implement later XSLT 2.0 and XPath 2.0 features present in alternatives like Saxon (software), which offer schema-aware processing and sequence types; nonetheless, Xalan remained compliant with the core W3C XSLT 1.0 and associated XPath standards adopted at its inception.
Two primary distributions of Xalan existed: a Java edition and a C++ edition. Xalan-J targeted Java Platform, Standard Edition runtimes and was commonly packaged with Apache Tomcat-hosted web applications, integrated into Spring Framework stacks or invoked from Ant (software) build files. The C++ edition compiled for use with compilers like GCC and Microsoft Visual C++, enabling embedding in native server processes and client-side tooling. Packaging for Linux, FreeBSD, Solaris, and Microsoft Windows allowed use within Debian (operating system), Red Hat Enterprise Linux, and other distributions. Third-party ports and binary distributions were made available by vendors for integration with enterprise products such as Oracle Application Server and IBM WebSphere.
Xalan's performance characteristics depended on workload, JVM or native runtime, and the complexity of XPath expressions and template recursion. In comparative benchmarks with processors like Saxon (software) and libxslt, Xalan-J often exhibited competitive throughput on straightforward transforms but lagged on complex XPath 2.0-style queries or schema-aware operations not supported by Xalan. Microbenchmarks emphasized the impact of DOM construction via Apache Xerces and the cost of node-set manipulation; tuning opportunities included reuse of transformer factories, precompilation of stylesheets, and JVM-level optimizations such as hotspot warm-up. Performance testing frameworks frequently used for evaluation included XalanJ2 benchmark suites and community-driven tests run on continuous integration services hosted by Travis CI or Jenkins.
Typical usage patterns invoked Xalan through APIs such as the Java API for XML Processing TransformerFactory to compile and apply stylesheets against XML (eXtensible Markup Language) sources, or via command-line utilities packaged with distributions for ad hoc transformations. Example integrations included generating HTML 4.01 reports from RSS feeds, converting DocBook XML to XHTML in publishing pipelines, and transforming SOAP payloads within Apache Axis services. Developers extended Xalan with Java (programming language) extension functions for custom string processing, or with C++ callbacks for platform-native interactions, and incorporated transforms into continuous build jobs managed by Apache Maven and Jenkins for automated documentation and deployment workflows.
Category:Extensible Stylesheet Language Transformations Category:Apache Software Foundation projects