Subject: xsl:message conformance
From: "Mark D. Anderson" <mda@xxxxxxxxxxxxxx>
Date: Sat, 18 Dec 1999 10:15:21 -0800
|
currently the xslt spec says very little about when/if an
xsl:message is run. so far as i can make out, a processor
could choose to ignore it completely and still be conformant --
even with terminate="yes".
i'd suggest that a minimal conformance criteria be:
- if a template is not used, then any xsl:message it contains
is not run
- if a template is used, then any immediate xsl:message children
it contains are run at least once (but not necessarily the same
number of times as the template is "used").
- xsl:message instructions are run inside of conditionals (if,
for-each, when, and the implicit if from an xsl:param default value)
if and only the parent element is used, and the test passes.
- something about terminate="yes"....
Thoughts?
James Clark wrote:
>As regards the XT output for xsl:message, note that the XSLT spec only
>tells you what the final result tree should be: it doesn't say anything
>about how templates are to be instantiated in order to achieve that
>result tree. This means that the spec gives you few guarantees about
>when you will see messages from xsl:message. XT takes advantage of the
>latitude afforded by the spec, and evaluates result tree fragments
>lazily (when a variable is bound to a result tree fragment it doesn't
>actually create the result tree fragment, it merely remembers the
>information that it needs to create the tree; when you use xsl:copy-of
>on the variable, XT then uses that information to output the result tree
>fragment, without ever creating a tree in memory). I don't recommend
>using xsl:message with XT for tracing result tree fragments: you'll just
>get confused. I don't believe XT's behaviour is non-conformant.
-mda
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|