[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 |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Result still indented des, G. Ken Holman | Thread | Re: [xsl] Result still indented des, Dimitre Novatchev |
Re: [xsl] Result still indented des, G. Ken Holman | Date | Re: [xsl] Result still indented des, Dimitre Novatchev |
Month |