0

XSLT を使用して XML メッセージの特定の述語を指定できるソフトウェア システムが存在すると仮定します。具体的には、入力ドキュメントを次の形式の出力ドキュメントに変換します: <predicate>true</predicate>(または<predicate>false</predicate>)。

いくつかの単純なケース ( message containsXPathなど) では、これはかなり簡単ですが、次のような XSLT を記述する必要があります。

<change>

  <!-- state before change -->
  <item>
    <name>
      <first>...</first>
      <last>...</last>
    </name>
    <something>
       ...
    </something>
  </item>

  <!-- state after change -->
  <item>
    <name>
      <first>...</first>
      <last>...</last>
    </name>
    <something>
       ...
    </something>
  </item>

</change>

<predicate>true</predicate>そして、次の場合、突然変異の定義に戻りたいと思います:

  • 前または後の状態 (またはその両方) には、実際にはsomethingデータのサブツリーが含まれているため (この部分はオプションであるため)、基本的change/item[1]/something | change/item[2]/somethingに 、および
  • データが削除される前と後の状態は、something互いに同一ではありません。

2 番目の部分は、次の疑似コードのようなものである可能性があります: $beforevariable はchange/item[1]/something既存のsomethingサブツリーが削除されたもので、$aftervariable はchange/item[2]/something既存のsomethingサブツリーが削除されたもので、おそらくnot(deep-equal($before,$after))...?のようなものです。

XSLT 1.0 ではこれはまったく不可能だと思うので、XSLT 2.0 を使用してこれを行う方法を知っている人はいますか?

4

1 に答える 1