[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Partial Implementation of XInclude include element
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
|
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
|