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

Re: is xslt "canonicalizable" can it be canonicalized?

Subject: Re: is xslt "canonicalizable" can it be canonicalized?
From: "Michael Kay mike@xxxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Wed, 8 Feb 2023 09:27:50 -0000
Re:  is xslt "canonicalizable" can it be canonicalized?
Note also, John Lumley made an attempt to write an XSLT3-to-XSLT2 translator,
which for example converted xsl:iterate to a recursive template.

Dealing with all the edge cases isn't easy.

Michael Kay

On 8 Feb 2023, at 08:37, Michael Kay
mike@xxxxxxxxxxxx<mailto:mike@xxxxxxxxxxxx>
<xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx<mailto:xsl-list-service@xxxxxxxxxxxx
rytech.com>> wrote:

There certainly are constructs in XSLT that can be readily translated to other
constructs statically (or in a pre-processing phase), and Saxon does this a
lot: for example it effectively turns

<xsl:if test="X">INST</xsl:if>

into

<xsl:choose>
  <xsl:when test="X">INST</xsl:when>
</xsl:choose>

Similarly it turns <xsl:text>ABC</xsl:text> into <xsl:value-of
select="'ABC'"/>

But I don't know of any attempt to define a "canonical subset" of the language
that excludes everything that can be considered "syntactic sugar".

Michael Kay
Saxonica

On 8 Feb 2023, at 08:05, BR Chrisman
brchrisman@xxxxxxxxx<mailto:brchrisman@xxxxxxxxx>
<xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx<mailto:xsl-list-service@xxxxxxxxxxxx
rytech.com>> wrote:



On Tue, Feb 7, 2023 at 9:06 PM Liam R. E. Quin
liam@xxxxxxxxxxxxxxxx<mailto:liam@xxxxxxxxxxxxxxxx>
<xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx<mailto:xsl-list-service@xxxxxxxxxxxx
rytech.com>> wrote:
On Wed, 2023-02-08 at 01:38 +0000, BR Chrisman
brchrisman@xxxxxxxxx<mailto:brchrisman@xxxxxxxxx>
wrote:
> transform.

There are differences indeed, in the handling of namespaces between
these two examples.

I think with XSLT 3 at least, you can turn literal element constructors
into element constructors (the xsl:element form), with careful use of
exclude-result-prefixes.

But not the other way round - consider
   <xsl:element name="{$name}">
for example. You can't write
   <{$name}>
to make an element, as that's not well-formed XML syntax.

So likely you're stuck handling all of XSLT. But, why are you
processing XSLT with XSLT in this way? Sounds interesting, tell us
more! :)


I've had an interest in this before, but this particular application is a
bunch of fairly straightforward xslt (identity transform based pipelines) and
various pieces are introducing attributes into certain elements.  I used an
xpath to find most of the xsl:attribute elements creating those attributes,
but noted that I also needed to find the <foo bar="baz"/> output elements that
include the bar attribute in that form.  That's not too hard, but if there was
a canonicalization already out there, I'd use it.
Yes, that would certainly fail or be extremely difficult for attributes named
with the attribute-value-template style and variables/expressions in a highly
normalized template.  I have some of that in various stylesheets, but not in
the points of interest.

liam

--
Liam Quin, https://www.delightfulcomputing.com/
Available for XML/Document/Information Architecture/XSLT/
XSL/XQuery/Web/Text Processing/A11Y training, work & consulting.
Barefoot Web-slave, antique illustrations:
http://www.fromoldbooks.org<http://www.fromoldbooks.org/>


XSL-List info and archive<http://www.mulberrytech.com/xsl/xsl-list>
EasyUnsubscribe<http://lists.mulberrytech.com/unsub/xsl-list/293509> (by
email<>)

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.