Subject: RE: node-set() function in MSXML?
From: "Kaganovich, Yevgeniy (Eugene)" <ykaganovich@xxxxxxxxxxx>
Date: Tue, 1 Aug 2000 19:27:54 -0700
|
One could define a "pass-through" node-set() function for MSXML that will
implement this functionality in a standard-compliant way, just returning the
original nodeset/rtf. I'm not an MS programmer, but I imagine it's pretty
trivial...
- Eugene
-----Original Message-----
From: Evan Lenz [mailto:elenz@xxxxxxxxxxx]
Sent: Tuesday, August 01, 2000 6:35 PM
To: xsl-list@xxxxxxxxxxxxxxxx
Subject: RE: node-set() function in MSXML?
Steve, thanks for your answer. I may end up resorting to doing what you
describe, but it's non-standard. So that's exactly what I meant by "in a
standard way." While the XSLT spec does not support accessing RTFs as
node-sets, it DOES describe a standard way to interface with extension
functions. If MSXML complied with the standard, I would be able to write a
stylesheet that uses fallbacks to invoke the appropriate node-set() function
based on which processor was being used. But since MSXML is not compliant,
I can't write a stylesheet that will work for it and for a compliant
processor. At least that's my understanding at this point.
-----Original Message-----
From: owner-xsl-list@xxxxxxxxxxxxxxxx
[mailto:owner-xsl-list@xxxxxxxxxxxxxxxx]On Behalf Of Steve Muench
Sent: Tuesday, August 01, 2000 4:50 PM
To: xsl-list@xxxxxxxxxxxxxxxx
Subject: Re: node-set() function in MSXML?
|
| Does MSXML implement a node-set() function (in a standard way)?
|
Not sure what you mean by "in a standard way", since the
node-set() function is not part of the XSLT 1.0 Recommendation,
but my experience playing with MSXSL3 (retested just now on the
July 2000) is that MSXSL3 does not require a node-set()
function because it treats Result Tree Fragments as node-sets
Try the following with MSXSL3 (using any convenient XML file as input):
<test xsl:version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:variable name="x">
<a>
<b>one</b>
<b>two</b>
</a>
</xsl:variable>
<xsl:for-each select="$x/a/b">
<c><xsl:value-of select="."/></c>
</xsl:for-each>
</test>
You'll get:
<?xml version="1.0" encoding="UTF-16"?>
<test><c>one</c><c>two</c></test>
as output.
Late-model versions of Saxon, OracleXSL, XT, and Xalan
complain about "cannot convert result tree fragment",
so require an extension function to achieve this.
______________________________________________________________
Steve Muench, Lead XML Evangelist & Consulting Product Manager
BC4J & XSQL Servlet Development Teams, Oracle Rep to XSL WG
Author "Building Oracle XML Applications", O'Reilly
http://www.oreilly.com/catalog/orxmlapp/
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
| Current Thread |
|
Kaganovich, Yevgeniy (Eugene) - Tue, 1 Aug 2000 19:27:54 -0700 <=
Pawson, David - Wed, 2 Aug 2000 08:01:57 +0100
Kay Michael - Wed, 2 Aug 2000 18:56:20 +0100
Andrew Kimball - Wed, 2 Aug 2000 11:40:53 -0700
|
|