[Bug 3123] What is an 'instruction' to element-available()?

http://www.w3.org/Bugs/Public/show_bug.cgi?id=3123





------- Comment #2 from david_marston@us.ibm.com  2006-04-21 15:29 -------
I'm sorry, but the use of the word "within" is not sufficient by itself to
carry that meaning. I think you should change it to "immediately within" (a
term seen in chapter 13). There are many places in the CR document where
"within" means all descendants, not just children. For example:
expressions within stylesheet (3.13, 5.3, 5.4, 10.3)
functions within stylesheet (2.5)
type references within stylesheet (2.8)
LRE within stylesheet module (3.12)
instruction within global variable declaration (10.1.2)
XSLT element within stylesheet (5.4)
function within pattern (14.1, 16.6)
variable references within stylesheet function body (10.3)
and on and on. Notice that some of these are situations where the item on the
LHS *cannot* be a child of the item on the RHS. The use of "within" in 3.9 to
describe where forwards compatibility applies also presumes descendants.

>I think it might be helpful if the definition of "instruction" mentioned the
>category notation used in the element syntax summaries.

Agreed. I also agree with your suggestion about the 3 parts of a template rule.

>The behaviour of element-available() is unchanged from XSLT 1.0, ... many
>XSLT 1.0 implementations get this wrong (and the only people who are likely to
>notice are conformance testers).

That may be the case *now*, but element-available() is a future-proofing tool,
so it should be specified well enough to make it robust. I don't see any harm
in an explicit sentence (in 18.2.2) saying that element-available('xsl:param')
must return false. The others (xsl:when, etc.) could be mentioned in a note at
18.2.2, but tightening the definition at 2.4 is more crucial.

Received on Friday, 21 April 2006 15:29:25 UTC