[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

xsl compact syntax using xquery

Subject: xsl compact syntax using xquery
From: Michael Sokolov <msokolov@xxxxxxxxxxxxxxxxxxxxx>
Date: Sun, 30 Mar 2014 12:00:05 -0400
 xsl compact syntax using xquery
Some recent comments on this list about XSLT compact syntaxes got me thinking. Why not use XQuery as a compact syntax for XSLT? XQuery's not really great as a transformation tool since it lacks XSLT's declarative rule-matching engine.

But with functional extensions to XQuery, I think we could build that, either in XQuery itself, or as a processor extension. It shouldn't require any language changes to get something useful. XSLT templates could be represented as associations of path expressions and XQuery functions.

It might look something like this:

<xsl:template match="//foo" priority="2">...</xsl:template>
  =>
xsl:template ("//foo", function () { ... }, 2)


<xsl:stylesheet> ... templates ... </xsl:stylesheet> => let $default-mode := xsl:stylesheet ($templates, ...)

It might be simplest to make all modes explicit?

<xsl:apply-templates select="xyz" />
=>
xsl:apply-templates (xyz, $default-mode)


In an ideal world, there could be a compact syntax that represents all of some version of XSLT.


Some differences that might be difficult to paper over:

Templates accept named parameters with default values, while functions only allow positional
parameters and all must be provided in every invocation.


I think a "translator" from XSLT to XSLT-Q (?) could supply defaulted parameter values in the apply-templates calls; this would lose some of the compactness benefit, but preserve the semantics.

Tunnel parameters don't have any analogue in XQuery. I don't see how to provide that feature in XQuery without language extensions, but maybe you have an idea, Dmitre? You always seem to be able to achieve a lot with very little.

There must be some other XSLT instructions that aren't directly available in XQuery: xsl:key, xsl:result-document, but I think these could probably provided as XQuery functions in some way, without I admit, having really thought through all the implications.

I'm idly contemplating trying to hatch a proof-of-concept of some sort. I'm counting on the wisdom of this list to deter me from wasting my time on a terrible idea. On the other hand perhaps it is a great idea and somebody else will be inspired to implement it, saving me the trouble :) What do you think?

-Mike

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.