Chapter 6. XML software
What wondrous life in this I lead!
Ripe apples drop about my head;
The luscious clusters of the vine
Upon my mouth do crush their wine;
The nectarine and curious peach
Into my hands themselves do reach;
Stumbling on melons, as I pass,
Ensnared with flowers, I fall on grass.
ANDREW MARVELL, Thoughts in a Garden
Let's start this chapter by stepping backwards and taking a wide look at our accomplishments so far. We've built a complex system consisting of an XML source definition, a couple of Schematron schemas, and a surprisingly versatile XSLT transformation stylesheet. Now that this basic setup is up and running, we can extend and streamline it with all kinds of XML software.
This chapter describes some software components that will let you build a logistics, management, and support infrastructure around an XML-based web site. This is not core technology; you can do without most of this stuff if you prefer. (Well, you'll probably need an XML editor in any case.) However, carefully chosen auxiliary tools can make your setup more efficient and easier to maintain.
The world of XML software is burgeoning. It's easy to become overwhelmed by claims, puzzled by buzzwords , and doped by hype. Sane, straight, no- nonsense talk is rare, especially in commercial software. I'll try to help.
The products I write about are not always the most popular and may not be the best, but they are usually the most illustrative . My goal is to demonstrate concepts and approaches, not specific products. Listing a product here does not imply endorsement, although all products I mention are workable and genuinely useful. Once you get an idea of the possible approaches to (for example) editing XML or debugging XSLT, you will be prepared to look for your own ideal tool.
A no monster zone. I'm a big fan of the well-known Unix motto: "Make your program do one thing but do it well." This means there's a certain slant in this chapter toward small and nifty utilities and away from all-encompassing software behemoths.
Bang for the buck. The XML realm enjoys a healthy mix of proprietary and open source software, and in almost any category, you'll find examples of both. Personally, I prefer the latter simply because a quality open source application is a much more valuable contribution to humanity than a comparable closed source program. Still, the criteria of usefulness and representativeness are paramount.
Where XML and XSLT are concerned , the best things in life really are free! XML and XSLT are free to learn and to use. Most XML parsers and XSLT processors ( 6.4.1 ) are free and open source, as are Schematron and Cocoon ( 7.2 ). And do you really need anything else? Generally, only if you want to trade a bit of your programming freedom for some sugar-coated convenience, you'll also need to throw in some money to make the deal.
Standards compliance. All XSLT- and XPath- related programs and utilities described in this chapter support XSLT/XPath 1.0. Those that also provide some support for 2.0 are noted. But software evolves, so be sure to check the current versions.