1

ServiceMix モジュールの XLST で配列を使用しようとしています。

ここに私の配列定義があります

<attr:Data>
    <Item1/>
    <Item2/>
    .
    .
    .
</attr:Data>

これが私の配列を呼び出す方法です

<xsl:for-each select="document('')/*/attr:Data/*">
...
</xsl:for-each>

Eclipse では問題なく動作しますが、ServiceMix にデプロイすると、include href is empty TransformerException が発生します。net.sf.saxon.trans.XPathException と org.apache.xalan.processor.TransformerFactoryImpl プロセッサを試しましたが、同じエラーが発生します。私が使用する ServiceMix のバージョンは 4.4.1-fuse-01-13 です。

4

1 に答える 1

0

ServiceMixはわかりませんが、スタイルシートのベースURIが設定されていないように見えます。つまり、document('')は機能しません。ServiceMixが変換を呼び出す方法を変更できない場合、最善のオプションはおそらくデータをグローバル変数に入れることです。

<xsl:variable name="data">
<attr:Data>
    <Item1/>
    <Item2/>
    .
    .
    .
</attr:Data>
</xsl:variable>

select="$data/attr:Data/*"Saxon(XSLT 2.0)select="xx:node-set($data)/attr:Data/*"を使用しているか、Xalan(XSLT 1.0)を使用しているかのようにアクセスします。

于 2012-06-06T11:17:23.683 に答える