Joshua Lubell (NIST) has announced the creation of an open source toolkit designed to "help developers avoid the drudgery of writing the complicated XSLT transforms often needed to integrate XML applications." The software has been developed within NIST's Manufacturing Systems Integration Division (MSID). The 'XSLToolbox' toolkit "currently contains two tools, both written in XSLT: (1) APEX is an application for transforming XML documents as specified by architectural forms; (2) ATTS is a stylesheet generator for adding default attribute values to XML documents. 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." APEX as a generic architecture engine processes "architecture support attributes which describe how its elements, attributes, and data correspond to their architectural counterparts governed by the architecture's architectural forms. [This allows the designer to:] extend XML vocabularies without breaking existing applications; to create architecture-specific document views, retaining only relevant markup and character data while hiding all other content; and to promote data sharing between user communities with inconsistent terminologies by enabling the substitution of identifier names and by allowing simple document transformations. Input to APEX consists of an XML document plus stylesheet parameters identifying an architecture used by the document. APEX produces as output an architectural document, i.e., an XML document containing only the markup and data defined by the architecture specified. ATTS provides an XSLT meta-stylesheet for assigning default attribute values to an XML document. ATTS is intended for XML applications lacking a convenient method, such as a DTD (document type definition), for specifying attribute defaults. Since the attributes that control architectural processing are usually fixed, ATTS can be used to supply their values. ATTS is therefore handy for DTD-less applications using APEX."
XSLToolbox rationale [from the web site]: "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: (1) the ever-increasing multitude of XML vocabularies; (2) 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."