Subject: Re: [xsl] is xslt "canonicalizable" can it be canonicalized? From: "Michael Kay mike@xxxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Wed, 8 Feb 2023 08:37:11 -0000 |
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 |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] is xslt "canonicalizable", BR Chrisman brchrism | Thread | Re: [xsl] is xslt "canonicalizable", Michael Kay mike@xxx |
Re: [xsl] is xslt "canonicalizable", BR Chrisman brchrism | Date | Re: [xsl] is xslt "canonicalizable", Michael Kay mike@xxx |
Month |