[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

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

Subject: [xsl] XSLT 3.0: The definition of the "unnamed mode"
From: "Dimitre Novatchev dnovatchev@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Sat, 27 Dec 2014 19:05:12 -0000

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

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

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?

Dimitre Novatchev

Current Thread