[xsl] Re: XSLT 3.0: The definition of the "unnamed mode"

Subject: [xsl] Re: XSLT 3.0: The definition of the "unnamed mode"
From: "Michael Kay mike@xxxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Fri, 2 Jan 2015 22:24:44 -0000
I agree, this definition is not a very good one. It's a relic of when the
unnamed mode was always the default mode. A better definition might be:

"There is a mode, called the unnamed mode, that has no name. The properties of
the unnamed mode may be defined using an xsl:mode declaration with an absent
name attribute. The unnamed mode is the default mode for an
xsl:apply-templates or xsl:template element with no mode attribute, unless a
different mode is nominated as the default using an [xsl:]default-mode
attribute."

Michael Kay
Saxonica
mike@xxxxxxxxxxxx
+44 (0) 118 946 5893




On 27 Dec 2014, at 19:04, Dimitre Novatchev <dnovatchev@xxxxxxxxx> wrote:

> In the 2nd Last Call of the W3C XSLT 3.0 specification, section "6.6.1
> Declaring Modes" defines "unnamed mode" thus:
>
> "[Definition: The unnamed mode is the default mode used when no mode
> attribute is specified on an xsl:apply-templates instruction or
> xsl:template declaration, unless a different default mode has been
> specified using the [xsl:]default-mode attribute of a containing
> element.]"
>
> I find this definition rather confusing, because the undefined term
> "default mode" is used and because this term seems undistinguishable
> from two other terms used in the definition: "different default mode"
> and "[xsl:]default-mode attribute".
>
>
>
> To summarize, this definition seems (endless) recursive, having not
> specified the term "default mode" on which it is based.
>
>
> I believe that a definition that more precisely defines the "unnamed
> mode" could be something like this:
>
> 1. A mode defined in an xsl:mode declaration (the one with highest
> import precedence) that has no "name" attribute specified, or
>
> 2. If there is no xsl:mode without a "name" attribute, then a mode
> that is defined by an (implicit) xsl:mode declaration without any
> attributes.
>
> 3. The unnamed mode defined in 1. and 2. above is used as the value of
> the "mode" attribute of any "xsl:template" or "xsl:apply-templates"
> that have no "mode" attribute specified, unless these are in the scope
> of an "[xsl:]default-mode" attribute, in which case the mode specified
> in the (innermost) "[xsl:]default-mode" attribute is used as the value
> for their "mode" attribute.
>
>
> Any thoughts, please?
>
>
>
> --
> Cheers,
> Dimitre Novatchev

Current Thread