Oleg Kiselyov



Title:  XML, XPath, XSLT implementations as SXML, SXPath, and SXSLT



Abstract:  This paper describes S-expression-based implementations of W3C XML Recommendations, the embedding of XML data and XML query and manipulation tools into Scheme, and our extensive practical experience in using these tools. The S-expression-based data format and query and transformation tools are conformant with W3C Recommendations: XML, XPath, XSLT, and XPointer. The core of our technique is SXML: an abstract syntax tree of an XML document. SXML is also a concrete representation of the XML Infoset in the form of S-expressions. SXML fully supports XML Namespaces, processing instructions, parsed and unparsed entities. An SSAX parser and pretty-printing tools convert between SXML and the angular-bracket-format of XML documents. All SXML query and manipulation tools are implemented in Scheme. XPath expressions, XSLT patterns and XPointer notation are translated into Scheme data structures and functions. SXML tree is a data structure, but it can be directly evaluated as if it were an expression. These features make XML data and XML processing a part of Scheme and eliminate a lexical barrier for XML processing. A combination of W3C conformance with seamless integration into a programming language is a distinctive feature of our tools. We have used our approach in real-life commercial and government applications for over two years. We provide production examples of a weather data dissemination system, XML transformation systems, and web services.


Keywords: XML, SXML, SXPath, SXSLT, SXPointer, STX, Scheme.