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
PURCHASE STYLUS STUDIO ONLINE TODAY!
Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!
Download The World's Best XML IDE!
Accelerate XML development with our award-winning XML IDE - Download a free trial today!
Subscribe in XML format