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. |