The Apache Software Foundation is among my favorite open source communities. I’ve been using its software since the early days of HTTP Server. The foundation has grown into a large R&D effort that focuses on cutting-edge Internet technologies, and its XML efforts have advanced by leaps and bounds in the last couple of years. Most recently, four new projects have joined Apache’s XML roster.

Apache AxKit
One of the most exciting new projects is AxKit. Designed to be an XML application server, AxKit is essentially a bolt-on to the Apache HTTP Server that provides a segmented architecture for application development. In other words, using AxKit you can separate the presentation and data layers of your Web-based application.

AxKit uses a built-in Perl engine to provide fast and robust XSLT transformations for presenting content to multiple types of media. AxKit’s architecture is component-based and uses a published API, allowing developers to create their own plug-in modules. AxKit provides database access using the Perl DBI SQL taglib within eXtensible Server Pages (XSP).

For more information about AxKit, visit the AxKit Web site.

The Forrest project’s goal is to provide an infrastructure for open source development. Essentially, Forrest will help manage the many software projects that fall under the Apache Software Foundation umbrella. The main components of Forrest are project documentation, source code repository, mailing list, and project roster.

Using a combination of components such as Cocoon, Ant, and XML, Forrest will provide Web access to information about the projects it manages. One of Forrest’s main goals is to help the Apache Web site be more competitive with other open source sites, such as SourceForge.

For more information about Forrest, visit the Forrest Web site.

Jelly offers component-rich XML scripting

Jelly is a scripting engine that turns XML into executable code. See how you can get started with this powerful tool.

In a nutshell, Xang is a Web-based front end for accessing data. Xang essentially provides an abstraction layer for disparate data sources using URLs. Each URL references a set or multiple sets of data from various sources. Data is aggregated and referenced as XML content and delivered to users.

In addition to just providing XML access to data sources, Xang supports JavaScript to programmatically control data access, aggregation, and transformation. Xang is implemented as a Java servlet and therefore needs to run in a servlet container, such as Apache’s Tomcat server.

For more information about Xang, visit the Apache Web site.

Pronounced “zeen-dee-chay,” Xindice is an XML database. It provides direct storage and retrieval of XML documents without having to map them to relational database tables and fields. Documents are stored in Xindice using XUpdate and retrieved using XPath.

Xindice isn’t designed to be an all-purpose warehouse for XML documents or for generic DOM persistence; it’s simply a functional and efficient method for storing XML data. It’s also designed to manage 200 small XML documents (10 KB or so) rather than 20 large documents.

Built on Java, Xindice allows you to index documents on both XML elements and attributes, increasing the performance of your XPath queries. The XML:DB API is implemented to provide standard access to XML data. Applications can access the database using either XML:DB directly from Java or using Xindice’s CORBA API.

For more information about Xindice, visit the Apache Web site.

We want your feedback
Tell us what you think about these four Apache XML tools. Share your comments in our discussion forum.