- From: Abel Braaksma <abel.braaksma@xs4all.nl>
- Date: Thu, 15 Oct 2015 19:40:31 +0200
- To: "Public XSLWG" <public-xsl-wg@w3.org>
For the record, this is now reported in public bug 29205: https://www.w3.org/Bugs/Public/show_bug.cgi?id=29205 Cheers, Abel > -----Original Message----- > From: Michael Kay [mailto:mike@saxonica.com] > Sent: Thursday, October 15, 2015 5:52 PM > To: Abel Braaksma > Cc: Public XSLWG > Subject: Re: xsl:use-when and shadow attributes on LREs, extension > instructions and data elements > > > > On 11 Oct 2015, at 12:27, Abel Braaksma <abel.braaksma@xs4all.nl> wrote: > > > > We say about using xsl:use-when on elements not in the XSLT namespace > the following: > > > > "A literal result element, or any other element within a stylesheet module > that is not in the XSLT namespace, may similarly carry an xsl:use-when > attribute." > > > > We use the words "similarly" and "carry". But we don't seem to explicitly > say that the same rules apply, i.e., that if the EBV is false(), the LRE is > effectively excluded, including all its children. In the case of data elements > and extension instructions I would argue that its behavior on that instruction > is implementation defined. Or if not, I think we should explicitly say so. > > I suggest we move the sentence, so that the the first paragraph reads: > > Any element in the XSLT namespace may have a use-when attribute whose > value is an XPath expression that can be evaluated statically. A literal result > element, or any other element within a stylesheet module that is not in the > XSLT namespace, may similarly carry an xsl:use-when attribute. If the > attribute is present and the effective boolean valueXP30 of the expression is > false, then the element, together with all the nodes having that element as > an ancestor, is effectively excluded from the stylesheet module. When a > node is effectively excluded from a stylesheet module the stylesheet > module has the same effect as if the node were not there. Among other > things this means that no static or dynamic errors will be reported in respect > of the element and its contents, other than errors in the use-when attribute > itself. > > > > > > Somewhat on the same token, we don't mention how shadow attributes > (3.14.2) are treated on extension instructions and/or data elements. We > seem to be inclusive (we only mention "where the attribute name is in no > namespace and the name of the parent element is in the XSLT namespace"), > but then we go on and end the paragraph being exclusive listing where it > does not apply. That list does not include extension instructions or data > elements, for which I could argue it is implementation dependent. > > The section on shadow attributes starts: > > Wherever a no-namespace attribute is defined for an element in the XSLT > namespace, instead of supplying the attribute value explicitly in the > stylesheet, a shadow attribute may be supplied allowing the value of the > attribute to be statically computed during the preprocessing phase. > > Therefore: > > * attributes whose names begin “_” on LREs are treated as ordinary > attributes > * attributes whose names begin “_” on data elements and extension > instructions are treated like any other attribute, that is, their effect is > implementation-defined. > > Michael Kay > Saxonica > > > > > Not reported in Bugzilla as I'm not sure this is a bug. > > > > Cheers, > > Abel > > > >
Received on Thursday, 15 October 2015 17:41:09 UTC