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

Subject: [xsl] Prevent compilation error for xsl:namespace in XSLT 1.0
From: Florent Georges <darkman_spam@xxxxxxxx>
Date: Sun, 14 Jan 2007 15:28:00 +0100 (CET)
  Hi

  I'm facing a simple problem, but I'm a little bit confused
and can't find the solution.  How to use xsl:namespace in an
XSLT 1.0 stylesheet to benefit its support if the stylesheet
is run with an XSLT 2.0 processor, but without generating a
compilation error on XSLT 1.0 processors?

  The goal is to write a named template that generates a
namespace node that can be copied to the result tree, using
either xsl:namespace, exslt:node-set(), *:node-set() or in
the worst case a dummy attribute whose the URI part of the
name is the namespace URI:

    IF available xsl:namespace
      ...
    ELSIF available exslt:node-set()
      ...
    # once for each other implementation specific node-set
    # functions
    ELSIF available *:node-set()
      ...
    ELSE
      <xsl:attribute
          name="{ concat(@prefix, ':dummy-for-xmlns') }"
          namespace="{ @uri }"/>

  So what can I use in the first branch in the above
algorithm?

  PS: The only solution I see now is to put the named
template in a separate stylesheet file, with @version="2.0"
and using element-available('xsl:namespace') as test in the
xsl:when.  But I would like to have only one stylesheet
file.

  Thanks in advance,

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