Subject: Re: [xsl] Partial Implementation of XInclude include element From: Jeni Tennison <jeni@xxxxxxxxxxxxxxxx> Date: Tue, 24 Sep 2002 16:14:22 +0100 |
Hi Eliot, >> I think that it's probably better to use an identity template here, >> namely: >> >> <xsl:template match="node() | @*" mode="xinclude"> >> <xsl:copy> >> <xsl:apply-templates select="@* | node()" mode="xinclude" /> >> </xsl:copy> >> </xsl:template> >> >> First, it's simpler. Second, it copies over comments and PIs, which >> you probably should do. Third, and most important, it manages >> namespaces correctly. As you currently have it, say you were >> including: > > Hmm. What doesn't happen when I use this improved code is copying of > the namespace nodes from the xsl:stylesheet document, as happens in > normal output (that is, if I don't go through this initial xinclude > step). I don't really understand why you want the namespaces from the *stylesheet* copied through into the output? Surely the only namespaces that should go through are those from the original source document and those from the document that's being XIncluded? Can you give an example that demonstrates what you want to happen? It might be that doing something like: <xsl:template match="*" mode="xinclude"> <xsl:copy> <xsl:copy-of select="document('')/xsl:stylesheet/namespace::*" /> <xsl:apply-templates select="@* | node()" mode="xinclude" /> </xsl:copy> </xsl:template> would give you what you want -- taking the namespace nodes from the xsl:stylesheet element and copying them on to each element that's copied from the source document(s). Cheers, Jeni --- Jeni Tennison http://www.jenitennison.com/ XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Partial Implementation of, W. Eliot Kimber | Thread | Re: [xsl] Partial Implementation of, W. Eliot Kimber |
Re: [xsl] Partial Implementation of, W. Eliot Kimber | Date | [xsl] XSL: query part of string to , Carrie Kaufman |
Month |