[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

Re: [xsl] Result still indented despite indent="no"


Subject: Re: [xsl] Result still indented despite indent="no"
From: Mukul Gandhi <mukul_gandhi@xxxxxxxxx>
Date: Sat, 19 Feb 2005 22:55:03 -0800 (PST)

Hi Ken,
  I tested white space handling by Saxon 8.1.1(in XSLT
1.0 mode) , Xalan-J 2.6.0 & MSXML4. I took the XML
example provided by Dare Obasanjo in xml-dev post, and
the XPath expression he posted..

The XML is -
<pre>
  <b>bold</b>
  <i>italic</i>
</pre>

The XPath expression is -
count(/pre/child::node())

Saxon gives result - 5 

MSXML4 gives result - 2

Xalan-J 2.6.0 gives result - 5

The XSLT 1.0 spec(URL -
http://www.w3.org/TR/1999/REC-xslt-19991116) says
(section 3.4 Whitespace Stripping)

"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.

A text node *is preserved if any of the following
apply*:

1) The element name of the parent of the text node is
in the set of whitespace-preserving element names.

2) The text node contains at least one non-whitespace
character. As in XML, a whitespace character is #x20,
#x9, #xD or #xA.

3) An ancestor element of the text node has an
xml:space attribute with a value of preserve, and no
closer ancestor element has xml:space with a value of
default.

Otherwise, the text node *is* stripped. "

There seems no ambiguity, that in this example
(provided by Dare Obasanjo) - white spaces *must* be
stripped (as none of the above 3 conditions in spec
are holding true).

It seems to me, MSXML4 is compliant in this regard. I
fear, Saxon and Xalan are not compliant..

Also, I feel what the spec recommends in this
regard(white space stripping) is correct..
Unless the user explicitly gives instruction to
preserve white spaces, they should be stripped. *White
space only, text nodes* are of no use for application.


Regards,
Mukul

--- "G. Ken Holman" <gkholman@xxxxxxxxxxxxxxxxxxxx>
wrote:

> At 2005-02-19 19:02 -0800, Sebastien Boisvert wrote:
> >I'm getting a result after applying a stylesheet
> where
> >some nodes get indented for some reason, even if I
> set
> >indent="no" and even the source document is not
> >indented.
> >
> >It seems that calling a certain template when
> >processing the root node somehow sets the indent
> mode
> >to 'yes' but only for that one template, as running
> >the default template (ie <xsl:apply-templates />)
> does
> >not produce this problem...
> 
> Good sleuthing there... well done ... that points to
> interpretation of the 
> stylesheet into a node tree.
> 
> >I've tried this on another processor with the exact
> >same stylesheet and source code and it works as
> >expected (indents do not happen).
> 
> Ahhh .. that points to a bug ... unless of course
> you used the MSXSL 
> processor for your alternate test in which it isn't
> at all definitive 
> because the Microsoft processor throws away
> whitespace-only text nodes 
> contrary to the explicit specification rules[1].  If
> you used a processor 
> conformant in the area of whitespace handling, then
> the test is more 
> meaningful.
> 
> >Is there something/someway that I might be calling
> the
> >template that would cause it to produce indents in
> >libxslt?
> 
> Do you have xml:space="preserve" used anywhere? 
> That overrides the rules 
> regarding ignoring whitespace-only text nodes from
> the stylesheet node tree 
> when building the result tree and would make any
> such annotated nodes visible.
> 
> I hope this helps.
> 
> ...................... Ken
> 
> 
> [1] - excerpts from an online debate regarding this
> issue of handling 
> whitespace-only text nodes, July 2003:
> 
> Microsoft's question:
> 
>   
>
http://lists.xml.org/archives/xml-dev/200307/msg00868.html
> 
> Microsoft's answer (by another employee):
> 
>   
>
http://lists.xml.org/archives/xml-dev/200307/msg00872.html
> 
> My claim where I observe Microsoft's non-compliance:
> 
>   
>
http://lists.xml.org/archives/xml-dev/200307/msg00870.html
> 
> Microsoft's counter-claim:
> 
>   
>
http://lists.xml.org/archives/xml-dev/200307/msg00873.html
> 
> My response:
> 
>   
>
http://lists.xml.org/archives/xml-dev/200307/msg00880.html
> 
> Microsoft's position at the end of the debate:
> 
>   
>
http://lists.xml.org/archives/xml-dev/200307/msg00885.html
> 
> I haven't heard anything official since, but as far
> as I know, this 
> whitespace-handling behaviour has not changed.
> 
> 
> --
> World-wide on-site corporate, govt. & user group
> XML/XSL training.
> G. Ken Holman                
> mailto:gkholman@xxxxxxxxxxxxxxxxxxxx
> Crane Softwrights Ltd.         
> http://www.CraneSoftwrights.com/s/
> Box 266, Kars, Ontario CANADA K0A-2E0   
> +1(613)489-0999 (F:-0995)
> Male Breast Cancer Awareness 
> http://www.CraneSoftwrights.com/s/bc
> Legal business disclaimers: 
> http://www.CraneSoftwrights.com/legal




		
__________________________________ 
Do you Yahoo!? 
Read only the mail you want - Yahoo! Mail SpamGuard. 
http://promotions.yahoo.com/new_mail 


Current Thread
Keywords