Rationale

XML is now the universal format for structured data exchange between software systems. Therefore, one would expect data sharing between applications to be widespread. This is not the case, however, due to barriers such as:

  • the ever-increasing multitude of XML vocabularies;

  • the wide variety of sometimes-competing XML description and implementation technologies.

A popular method for coping with such barriers is to use XSLT (Extensible Style Language Transformations), a language for transforming one XML document into another XML document. XSLT lets developers specify conversions between different XML vocabularies. XSLT is also handy for solving the common systems integration problem where XML documents almost but not quite conform to a given vocabulary.

Unfortunately, XSLT syntax is complex, and writing XSLT is often time-consuming. Thus, having to write an XSLT transform every time two systems need to talk to one another is a less than satisfying way to achieve interoperability. It would be better if developers could declare variances in the systems' XML markup using a syntax more succinct and intuitive than XSLT.

The XSLToolbox helps developers avoid the drudgery of writing complicated XSLT transforms in order to integrate XML vocabularies. Currently, the tools in the XSLToolbox are written in XSLT although future additions may not be. Unlike some other XSLT libraries, the XSLToolbox is specifically geared toward XML data exchange between applications rather than conversion of XML to human-readable data formats.