xsl-list
[Top] [All Lists]

Re: Identity of Documents Puzzle

2002-12-07 18:51:37
At 2002-12-07 20:19 -0500, I wrote:
At 2002-12-07 16:29 -0600, W. Eliot Kimber wrote:
W. Eliot Kimber wrote:
David Carlisle wrote:

can't you compare
generate-id(document('filename'),/)
and
generate-id(document(''),/)


I think they should be the same if 'filename' is the input doc,
shouldn't they?

Unfortunately no--'document("")' returns the root node of the stylesheet, not the input document.

Not thinking clearly. Of course this works. I was confused by the example in the writeup of document() in the spec and didn't think it through.

But it doesn't work between document('filename') and passing the file on the command line ... my post from last night shows the evidence with both XT and Saxon.

Sorry ... I missed the fact you were passing a second argument ... yes, indeed, David is right the empty argument with the source node is giving the source document ... evidence is below.

I see that now in the reading of the fourth paragraph of 12.1.

Though I'm still not sure why the URI in the command line is being considered different than that passed to the function.

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

X:\samp>type genid2.xsl
<?xml version="1.0"?><!--genid2.xsl-->
<!--XSLT 1.0 - http://www.CraneSoftwrights.com/training -->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
                version="1.0">

<xsl:template match="/">
Source:  <xsl:value-of select="generate-id(.)"
      />:<xsl:value-of select="name(*)"/>
SSheet:  <xsl:value-of select="generate-id(document(''))"
      />:<xsl:value-of select="name(document('')/*)"/>
Empty/:  <xsl:value-of select="generate-id(document('',/))"
      />:<xsl:value-of select="name(document('',/)/*)"/>
genid2:  <xsl:value-of select="generate-id(document('genid2.xsl'))"
      />:<xsl:value-of select="name(document('genid2.xsl')/*)"/>
</xsl:template>

</xsl:stylesheet>

X:\samp>type other.xml
<doc/>

X:\samp>xt other.xml genid2.xsl
<?xml version="1.0" encoding="utf-8"?>

Source:  N0:doc
SSheet:  N1_0:xsl:stylesheet
Empty/:  N2_0:doc
genid2:  N1_0:xsl:stylesheet
X:\samp>xt genid2.xsl genid2.xsl
<?xml version="1.0" encoding="utf-8"?>

Source:  N0:xsl:stylesheet
SSheet:  N1_0:xsl:stylesheet
Empty/:  N1_0:xsl:stylesheet
genid2:  N1_0:xsl:stylesheet
X:\samp>saxon other.xml genid2.xsl
<?xml version="1.0" encoding="utf-8"?>
Source:  d0:doc
SSheet:  d1:xsl:stylesheet
Empty/:  d2:doc
genid2:  d1:xsl:stylesheet
X:\samp>saxon genid2.xsl genid2.xsl
<?xml version="1.0" encoding="utf-8"?>
Source:  d0:xsl:stylesheet
SSheet:  d1:xsl:stylesheet
Empty/:  d1:xsl:stylesheet
genid2:  d1:xsl:stylesheet
X:\samp>

--
Upcoming hands-on in-depth XSLT/XPath and/or XSL-FO:
-                             North America:  Feb 3 - Feb 7,2003

G. Ken Holman               mailto:gkholman(_at_)CraneSoftwrights(_dot_)com
Crane Softwrights Ltd.        http://www.CraneSoftwrights.com/s/
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-10-1             Practical Formatting Using XSL-FO
Next conference training:                    2002-12-08,03-03,06


XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list