Committer Home Page: Steven J. Hathaway

I am the documentation project coordinator for the Apache Xalan Projects. My current focus is on the Xalan-C++ V1.11 documentation, preparing for a release. I am also helping to create a consistent look and feel for the entire Xalan web pages.

I monitor the Apache Xalan discussion groups and review all comments. Post your comments to the developer's mail list This is a moderated list. You can subscribe to the list if you wish your posts not to be delayed.

Website Staging Areas

Website Staging

Xalan TLP Website Staging docs/xalan
Xalan C Website Staging docs/xalan/xalan-c
Xalan Java Website Staging docs/xalan/xalan-j

Distribution Staging

Xalan TLP Distribution Stagingfiles/dist
Xalan C Distribution Staging files/dist/xalan-c
Xalan Java Distribution Stagingfiles/dist/xalan-j

Xalan Documentation Links

The Apache XALAN project now has an Apache Wiki [] that can be used by committers to share information that is useful for project coordination.

As the WIKI administrator, I monitor the developer's mail list [].

Our official Apache XALAN website is [].

My XALAN staging website is [here].

Archived Project Distributions

The Apache XALAN project has moved away from the parent Apache XML project. The Apache XML is now retired. Our old Xalan C and Xalan Java distributions are still available on the Apache XML distribution mirror.

Old XML Xalan C Distributions
Old XML Xalan C Documentation
Old XML Xalan Java Distributions
Old XML Xalan Java Documentation

The old XML Xalan documentation pages have most of the necessary links fixed. The links should now resolve to reachable sites and resources.

Google Summer of Code 2012

The Google Summer of Code 2012 has come to completion. The student code is in a subversion repository. The base functions for XML DateTime data is complete. It is ready to be packaged as EXSLT XPath functions for the Xalan-C/C++ project. The subversion branch can be built with Microsoft Windows Visual Studio 2010.

After the official release of Xalan-C/C++ version 1.11 has been distributed, we will incorporate the new EXSLT XPath functions into the subversion trunk.

Xalan Documentation Project

The Apache XALAN project pages have had a face lift. The TLP website is now published using the Apache "svnpubsub" architecture. Authorized committers can make changes by committing changes to the (svn)/xalan/site/docs/xalan/ tree.

The StyleBook XML tools used for our Apache TLP and subprojects is saved at (svn)/xalan/site/stylebook/.

StyleBook markup for XALAN TLP is found at (svn)/xalan/site/xdocs/.

StyleBook markup for XALAN C is found at (svn)/xalan/c/trunk/xdocs/.

StyleBook markup for XALAN Java is found at (svn)/xalan/java/trunk/xdocs/.

We no longer use the deprecated Apache StyleBook java program for creating web pages. This program was used to build the Apache XML project pages. We now use a standard XSLT transformation stylesheet to perform the same activity with a cleaner output.

Please let us know of broken links - there are many. Describe any content you feel needs to be added or removed from these pages.

As the coordinator for the Xalan documentation project, I can make the changes and update these pages. Other committers can also make changes as needed.

IBM ICU Library Builds

I have not yet tried to perform ICU library builds. Maybe someone can try the ICU builds and submit their scripts.

The home for IBM-ICU (International Components for Unicode) has moved to its own development arena located at [].

Custom XPath Library for Xalan-C/C++

The file contains a number of custom XPath extensions I have written for Xalan-C, and an exslt.exe executable that installs and tests the functions. Since the code is a mixture of both 'C' and C++ languages, these functions are not yet appropriate to include in the Xalan-C distribution.

Here is a library that prototypes several XPath extension functions and documents the memory management issues when using both C and C++ in your development. The biggest issue is keeping track of the various memory management domains.

The date processor is not thread-safe. The cvdate() function accepts many different types of formats for dates. Heuristics analysis attempts to determine the month, day, and year components. If the year component is 2-digits, then a floating year window is used to determine the century. The current date for the floating window is obtained from the system clock. The output string is formatted according to a wide variety of common date presentation types. The cvdate() function is not locale specific.

Another XPath extension library implements a virtual key-value database on an arbitrary number of named tables. The database is loaded by stylesheets and kept as linked lists in memory. A well-used 'C' library for linked lists is found in this file.

I hope this code is useful. It is committed to the public domain without copyright or license encumbrance. It can be used in any application so long as the code remains open-source and freely available. It can be re-licensed with any open-source license without attribution.

Apache Code Signing

My (Apache Code Signing) signature is retrievable from

Key fingerprint = 78C4 76CF 17BB 57E1 7475 C80B 828B 1A23 586A 109E

Key Name = Steven J. Hathaway (Apache Code Signing)

If you have problems verifying the signature, please let me know by email to <>