0

質問はばかげているように見えるかもしれませんので、ご容赦ください。dp:serialize の使用法を親切に説明してください。

ノードセットをバイトストリームに変換することをどこかで読みました。

バイト ストリームは、1 と 0 を参照していることを意味しますか??

また、この dp 拡張関数を使用する必要があるシナリオをいくつか教えてください。

ありがとう

4

1 に答える 1

0

XSLT 処理の最中に、扱っている XML のすべてのビット (入力ドキュメント、コンテキスト ノード、xsl:variables のノード セット) はテキストではなく、DataPower の最適化されたツリーです。メモリー。処理中に、XML の一部をテキストに変換する必要がある場合があります。例として、暗号化したい場合があります。(生の AES 暗号化だけで、派手な OASIS XML 暗号化標準はありません。) ここで dp:serialize の出番です。これは、メモリ内のノード セットを XML 構文テキストを含む文字列に変換します。

コード。コードが必要です。

<xsl:variable name="my-node-set">
    <xyzzy>
        <plugh>Nothing happens.</plugh>
    </xyzzy>
</xsl:variable>

<xsl:variable name="my-xml-string">
    <dp:serialize select="$my-node-set"/>
</xsl:variable>

<xsl:variable name="my-ciphered"
    select="dp:encode($alg-aes, $secret-key, $my-xml-string)"/>

別の方法に進む必要がある場合 -- XML 形式であるとかなり確信している文字列があり、それをノード セットを含む xsl:variable に変換したい場合 (XPath を使用してナビゲートできるようにするため)それを介して) -- 次に、dp:parse を使用します。

<xsl:variable name="my-node-set"
    select="dp:parse($my-string)"/>

<dp:serialize> を拡張要素として実装し、dp:parse() を拡張関数として実装することにした理由を理解できませんでした。私には非対称に見えます。

于 2014-11-22T05:06:00.980 に答える