Re: [xsl] Prevent compilation error for xsl:namespace in XSLT 1.0

Subject: Re: [xsl] Prevent compilation error for xsl:namespace in XSLT 1.0
From: Florent Georges <darkman_spam@xxxxxxxx>
Date: Mon, 15 Jan 2007 10:20:37 +0100 (CET)
Colin Adams wrote:

  Hi

> >From: Florent Georges 

> >   Yes, I think the external module is the best solution.

> >   And to prevent compilation error with processors don't
> >supporting the namespace axis, I think a use-when with
> >element-available('xsl:namespace') will be enough (because
> >this can only arise with XSLT 2.0 processors)?

> Support for the namespace axis is another matter. Xsl:namespace
> will be available for all XSLT 2.0 processors.

  Yes, I wasn't clear enough.  The first xsl:when will use
xsl:namespace if available.  In the other xsl:when, there will be for
example the following well-known trick:

    <xsl:when test="function-available('exsl:node-set')">
      <xsl:variable name="ns-dummy-elements">
        <xsl:element name="{ @prefix }:e" namespace="{ @uri }"/>
      </xsl:variable>
      <xsl:copy-of select="exsl:node-set($ns-dummy-elements)
                             / */namespace::*"/>
    </xsl:when>

  I think in this case, the only way to prevent compilation error on
XSLT 2.0 processors that don't support the namespace axis is to use
@use-when.  Hhere, use-when="false()" does the job, because only the
XSLT 2.0 processors will use this attribute, and all will provide
xsl:namespace, used in the first xsl:when.

  Regards,

--drkm



















	

	
		
___________________________________________________________________________ 
Dicouvrez une nouvelle fagon d'obtenir des riponses ` toutes vos questions ! 
Profitez des connaissances, des opinions et des expiriences des internautes sur Yahoo! Questions/Riponses 
http://fr.answers.yahoo.com

Current Thread