[xquery-talk] Implementing XQuery: parsing XQuery *and* XSL-T
Frans Englich
frans.englich at telia.com
Thu Feb 16 22:09:17 PST 2006
Hi everyone,
I, as perhaps many others, say that XQuery 1.0 and XSL-T 2.0 are similar. They
can roughly solve the same problems, although with different syntax. David
Carlisle's xq2xsl[1] converts XQuery code to XSL-T, and implementations in
the style of Saxon uses the same internal representation for XQuery and XSL-T
constructs.
For those steering towards implementing both host languages from the same code
base can save development costs by TODO the similarities. That's what
interests me in this mail. In particular, how far one can use the same code
for parsing XQuery and XSL-T.
For the sake of this discussion, let's assume that "instantiating" XQuery or
XSL-T can be divided in two parts: the tokenization/parsing stage(which, can
be more or less entangled), and creating an AST tree(typically). The latter
stage is the same for both XQuery and XSL-T. What differs is
features/properties which have no corresponding part in the other language,
and syntax.
In order to achieve that, consider this implementation sketch:
* The parser and any scanners(yes, plural) are separated. That is, scanners
would be a state-driven or two-pass scanners[2], which not requires involving
a token parser in order to know how to tokenize.
* One has two different scanners, one for XQuery and one for XSL-T, both
producing tokens for the same parser to consume. For example, the XSL-T
scanner would validate elements and attributes, perform whitespace
normalization, but other than that produce tokens for consumption by the
parser.
Of course, it is far from this simple and it is also very much implementation
dependent. Nevertheless, I think it's worth a shot: has anyone attempted
anything in this direction? What are people's thoughts and experiences on
something like this?
Frans
1.
http://monet.nag.co.uk/xq2xml//xq2xslnotes.html
2.
As per the terminology defined in:
http://www.w3.org/TR/xquery-xpath-parsing/
More information about the talk
mailing list