[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: Partial Implementation of XInclude include element

Subject: Re: Partial Implementation of XInclude include element
From: "W. Eliot Kimber" <eliot@xxxxxxxxxx>
Date: Tue, 24 Sep 2002 10:14:09 -0500
xi include xsl
"W. Eliot Kimber" wrote:

> 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).

Double hmm--it works fine now. Not sure what I was doing.

Here's my revised code. In addition to Jeni's changes, I added a check
to look for include elements in the top-level document and therefore
avoid extra processing if nothing is actually included:

<xsl:template match="/">
 <xsl:choose>
   <xsl:when test="//xi:include">
     <xsl:variable name="resolved-doc">
       <xsl:apply-templates  mode="xinclude"/>
     </xsl:variable>
     <xsl:apply-templates select="$resolved-doc" mode="normal"/>    
   </xsl:when>
   <xsl:otherwise>
     <xsl:apply-templates/>    
   </xsl:otherwise>
 </xsl:choose>
</xsl:template> 

<xsl:template match="/" mode="normal">
  <xsl:apply-templates/>
</xsl:template>

<xsl:template match="node() | @*" mode="xinclude">
  <xsl:copy>
    <xsl:apply-templates select="@* | node()" mode="xinclude" />
  </xsl:copy>
</xsl:template>

<xsl:template match="xi:include" mode="xinclude">
  <xsl:variable name="xpath" select="@xi:href"/>
  <xsl:choose>
    <xsl:when test="$xpath != ''">
      <xsl:message>Including <xsl:value-of
select="$xpath"/></xsl:message>
      <xsl:apply-templates select="document($xpath)" mode="xinclude"/>
    </xsl:when>
    <xsl:otherwise>
      <xsl:message>Xinclude: Failed to get a value for the xi:href=
attribute of xi:include element.</xsl:message>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>

-- 
W. Eliot Kimber, eliot@xxxxxxxxxx
Consultant, ISOGEN International

1016 La Posada Dr., Suite 240
Austin, TX  78752 Phone: 512.656.4139

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


Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.