1
関数の例では、xsl:sequenceを使ってこれを変更すると、同じ結果が得られます。 xsl:value-ofではなくxsl:sequenceを使用する利点。xsl:sequence vs xsl:より価値のある関数の値
関数の例では、xsl:sequenceを使ってこれを変更すると、同じ結果が得られます。 xsl:value-ofではなくxsl:sequenceを使用する利点。xsl:sequence vs xsl:より価値のある関数の値
常にxsl:sequence
を使用してください。
xsl:sequence
は、そのselect式の結果を返します。
xsl:value-of
は、select式の結果をテキストノードにラップします。関数の宣言された結果が(例えば)xs:integerならば、テキストノードは霧化され、xs:integerに変換されます。そう例
<xsl:function name="f:add" as="xs:integer">
<xsl:param name="x" as="xs:integer"/>
<xsl:param name="y" as="xs:integer"/>
<xsl:value-of select="$x + $y"/>
</xsl:function>
ため、文字列に結果を変換するテキストノードでこれをラップ、型なし原子値を取得するために、テキストノードを噴霧し、次いで変換され、x及びyの整数加算を実行します型なしの原子値を整数に変換します。
あなたが幸運であれば、オプティマイザは、これがすべての労力とオーバーヘッドを避けることを検出しますが、それに依存しないことをお勧めします。
xsl:value-ofが機能しない場合があります。たとえば、関数がノードを返す場合などです。
マイケルさん! – Rupesh