OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

 


 

   RE: [xml-dev] Xpath Question

[ Lists Home | Date Index | Thread Index ]

At 2003-07-25 11:47 -0700, Michael Rys wrote:
>Sorry but this is FUD.

I apologize, but this was never my intention, and I'll thank you to not 
make the assumption that it is.

>XPath 1.0 has no conformance requirement on what data model a parser
>needs to generate.

Then I will amend my statement to say "In the context of XSLT the data 
model created from XPath states the number of nodes is 5".

>Unless you have an explicit xml:space="preserve" set, the generation of
>the datamodel as a consumer of the output of the XML parser (which
>always preserves all the whitespace) can drop the boundary whitespace
>text nodes.

Fine ... but given your use of "can" and Dare's lack of a specification of 
the context in which XPath is being used, I think it is unfair to claim my 
statement to be FUD.

Let me try again:

> > At 2003-07-25 10:42 -0700, Dare Obasanjo wrote:
> > >One of our devs just made me question all that's right in the world
>with
> > >the question below. Given the following XML
> > >
> > ><pre>
> > >   <b>bold</b>
> > >   <i>italic</i>
> > ></pre>
> > >
> > >what is the result of the following XPath expression
> > >"count(/pre/child::node())" ?
> > >
> > >Is the answer 2 or 5?

In the context of XSLT 1.0 where this instance is being treated as a source 
file to build a source node tree and the stylesheet does not include any 
<xsl:strip-space> or <xsl:preserve-space> instructions, section 3 of 
http://www.w3.org/TR/1999/REC-xslt-19991116 states "The data model used by 
XSLT is the same as that used by XPath with the additions described in this 
section" and the applicable statements from section 3.4 of 
http://www.w3.org/TR/1999/REC-xslt-19991116 indicate all text nodes are 
preserved because:

   (a) - the element name of the parent of the text node is in the set of 
whitespace-preserving element names
   (b) - for source documents, the set of whitespace-preserving element 
names is specified by xsl:strip-space and xsl:preserve-space top-level elements
   (c) - initially, the set of whitespace-preserving element names contains 
all element names

So, given that context that I've just assumed (an environment claiming to 
be conformant to XSLT 1.0), I stand by the rest of my posting, and it is 
*not* meant to malign IE or Microsoft or spread FUD ... I'm only reporting 
it as I see it and understand it.  I *thought* Microsoft claimed the IE 
implementation of XSLT to follow XSLT 1.0 (though I cannot find such a 
claim right now in the product pages) ... certainly my students think it is 
... but because of the difference I cite below (and by chapter and verse of 
XSLT 1.0 cited above) I don't use IE in my teaching of XSLT.

And most (all?) students of mine who are using the Microsoft XPath 
implementation are using it in the context of XSLT 1.0.

Regarding conformance, chapter 17 of 
http://www.w3.org/TR/1999/REC-xslt-19991116 states "A conforming XSLT 
processor must be able to use a stylesheet to transform a source tree into 
a result tree as specified in this document." ... which I believe ties in 
all of the statements I cited above from section 3.

If there is ambiguity regarding Dare's question of XPath in the context of 
XSLT, then I don't know where it is.

I *sincerely* hope this helps.

.................. Ken

> > XPath says it is 5 because of the text nodes.  See[1] the Saxon report
> > below.
> >
> > A DTD might say the intervening white-space is ignorable, but XPath
> > doesn't
> > preserve the concept of ignorable white-space.  All white-space in
>XPath
> > is
> > significant, hence burdening a stylesheet writer with indicating which
> > elements have ignorable white-space using <xsl:strip-space>.
> >
> > A big problem teaching XSLT to users of Microsoft products is that IE
> > engages MSXML throwing away *all* whitespace, which doesn't conform to
> > XPath 1.0.  See[2] the IE6 report below.
> >
> > I hope this helps.
> >
> > .................... Ken
> >
> >
> > [1] Using Saxon:
> >
> > T:\ftemp>type dare.xml
> > <pre>
> >    <b>bold</b>
> >    <i>italic</i>
> > </pre>
> >
> > T:\ftemp>showtree dare.xml
> >
> > T:\ftemp>type dare.xml.shw
> > SHOWTREE Stylesheet - http://www.CraneSoftwrights.com/resources/
> > Processor: SAXON 6.5.2 from Michael Kay
> > 1  Element 'pre':
> > 1.I  Namespace 'xml': {http://www.w3.org/XML/1998/namespace}
> > 1.1  Text (pre): {
> >    }
> > 1.2  Element 'b' (pre):
> > 1.2.I  Namespace 'xml': {http://www.w3.org/XML/1998/namespace}
> > 1.2.1  Text (pre,b): {bold}
> > 1.3  Text (pre): {
> >    }
> > 1.4  Element 'i' (pre):
> > 1.4.I  Namespace 'xml': {http://www.w3.org/XML/1998/namespace}
> > 1.4.1  Text (pre,i): {italic}
> > 1.5  Text (pre): {
> > }
> > T:\ftemp>
> >
> > [2] Using MSXML through IE6 and copying the screen contents to the
> > clipboard:
> >
> > T:\ftemp>type dare-ms.xml
> > <?xml-stylesheet href="showtree.msxsl" type="text/xsl"?>
> > <pre>
> >    <b>bold</b>
> >    <i>italic</i>
> > </pre>
> >
> > T:\ftemp>copy con nul
> > SHOWTREE Stylesheet
> > file:///T:/ftemp/dare-ms.xml
> > http://www.CraneSoftwrights.com/resources/
> >
> > Root:
> > 1 Proc. Inst. 'xml-stylesheet' (): {href="showtree.msxsl"
>type="text/xsl"}
> > 2 Element 'pre' ():
> > 2.1 Element 'b' (pre):
> > 2.1.1 Text (pre,b): {bold}
> > 2.2 Element 'i' (pre):
> > 2.2.1 Text (pre,i): {italic}
> >
> > ^Z
> >          1 file(s) copied.
> >
> > T:\ftemp>


--
Upcoming hands-on courses: in-house corporate training available;
North America public:  XSL-FO Aug 4,2003; XSLT/XPath Aug 12, 2003

G. Ken Holman                mailto:gkholman@CraneSoftwrights.com
Crane Softwrights Ltd.         http://www.CraneSoftwrights.com/x/
Box 266, Kars, Ontario CANADA K0A-2E0   +1(613)489-0999 (F:-0995)
ISBN 0-13-065196-6                      Definitive XSLT and XPath
ISBN 0-13-140374-5                              Definitive XSL-FO
ISBN 1-894049-08-X  Practical Transformation Using XSLT and XPath
ISBN 1-894049-11-X              Practical Formatting Using XSL-FO
Member of the XML Guild of Practitioners:    http://XMLGuild.info
Male Breast Cancer Awareness http://www.CraneSoftwrights.com/x/bc





 

News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2001 XML.org. This site is hosted by OASIS