2011-01-13 12 views
0

外部XSLTオブジェクトに実装された関数が(XSLT 1.0では)存在しない場合、フォールバック動作を提供できますか?XSLT拡張機能が存在しない場合のフォールバック動作

は今、私は

<xsl:template match="an-element"> 
    <xsl:value-of select="external-ns:ExternalFunction(.)" /> 
</xsl:template> 

に似た何かを持っているしかし、それはexternal-nsが利用できない場合、それは同じようにスマートではありません理にかなってコンテンツを生成することが可能です。だから、私は私がxsl:fallbackelement-available()の承知しているが、これらは要素だけではなく、機能のためにあるように見える

<!-- (pseudo) --> 
<xsl:template match="an-element"> 
    <xsl:try> 
    <xsl:value-of select="external-ns:ExternalFunction(.)" /> 
    <xsl:catch> 
     <!-- do something else with the node --> 
    </xsl:catch> 
    </xsl:try> 
</xsl:template> 

のようなものを持っているしたいと思います。これを達成する方法はありますか?

答えて

1

機能

http://www.w3.org/TR/xslt#function-function-availableから:ブール機能-利用可能文字列

引数がQNameである文字列 に評価されなければなりません。 QNameは、式 の範囲内の 名前空間宣言を使用して、拡張名に展開された です。 function-available 関数は、 の展開名が関数ライブラリの 関数の名前である場合にのみtrueを返します。 拡張名がNULLでない 名前空間URIを持つ場合は、 拡張機能を参照します。それ以外の場合は はXPath またはXSLTで定義された関数を指します。

+0

私はこれをどのように逃したのか分かりません。ありがとう! – Jacob

+0

@Jacob:それを言わないでください。どういたしまして。 –

関連する問題