[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: Xpath Question
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@C... 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
|
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
|