RE: Request for XSLT 1.0 erratum on stylesheet processing model

I personally think that the two sentences, taken together, can only be read
one way:
 
 Processing instructions and comments in the stylesheet are ignored: the
stylesheet is treated as if neither processing instruction nodes nor comment
nodes were included in the tree.
 
After the tree for a source document or stylesheet document has been
constructed, but before it is otherwise processed by XSLT, some text nodes
are stripped.
 
I also think there's not much to be gained by issuing this kind of
clarification 5½ years after publishing a spec. I don't think vendors are
suddenly going to fix their implementations, and even if they do so, users
won't suddenly install the new version. At this stage of the game, vendors
are likely to decide that incompatibility with their own previous releases
is going to cause more trouble than incompatibility with other vendors.
Given the much bigger interoperability problems that arise from differences
in handling of whitespace in source documents, it's not even clear that it's
worth fixing.
 
Michael Kay (personal response).
 
 


  _____  

From: xsl-editors-request@w3.org [mailto:xsl-editors-request@w3.org] On
Behalf Of david_marston@us.ibm.com
Sent: 27 May 2005 17:12
To: xsl-editors@w3.org
Subject: Request for XSLT 1.0 erratum on stylesheet processing model



In the XSLT 1.0 Recommendation, Chapter 3 ("Data Model") begins by saying: 
" Processing instructions and comments in the stylesheet are ignored: the
stylesheet is treated as if neither processing instruction nodes nor comment
nodes were included in the tree that represents the stylesheet." 
and further down in 3.4 it says 
"After the tree for a source document or stylesheet document has been
constructed, but before it is otherwise processed by XSLT, some text nodes
are stripped...." 
This does not explicitly state the sequence between comment/PI stripping and
whitespace-text-node stripping in the stylesheet. The test case is: 
<xsl:template match="x"> 
    <lre>text<!-- boo -->     </lre> 
</xsl:template> 
and I think your intent, as is very clear for 2.0, is that this template
should construct 
<lre>text     </lre> 
rather than 
<lre>text</lre> 
but "ignoring" the comment node could be construed as the same operation as
"stripping" a node. I have recently become aware of a well-known XSLT
processor that treats the two stripping/ignoring operations as occurring at
the same time and produces the second result shown above. 

Please issue an erratum that will make the 1.0 spec as explicit as drafts of
the 2.0 spec have been. 
.................David Marston, IBM Research 

Received on Friday, 27 May 2005 16:26:44 UTC