2 つの列に基づく FK を持つ XML 形式で格納された DB テーブルがあります (Table2 には ID と TYPE に基づく Table1 への FK があります)。
Table1.xml
<Table>
<Row>
<ID>1</ID>
<TYPE>A</TYPE>
<CONFIG>Y</CONFIG>
...
</Row>
<Row>
<ID>2</ID>
<TYPE>A</TYPE>
<CONFIG>Z</CONFIG>
...
</Row>
<Row>
<ID>1</ID>
<TYPE>B</TYPE>
<CONFIG>X</CONFIG>
...
</Row>
<Row>
<ID>3</ID>
<TYPE>A</TYPE>
<CONFIG>Z</CONFIG>
...
</Row>
</Table>
Table2.xml
<Table>
<Row>
<ID>1</ID>
<TYPE>A</TYPE>
...
</Row>
<Row>
<ID>2</ID>
<TYPE>A</TYPE>
...
</Row>
<Row>
<ID>1</ID>
<TYPE>B</TYPE>
...
</Row>
<Row>
<ID>3</ID>
<TYPE>A</TYPE>
...
</Row>
</Table>
各 XML ファイルの行を削除するための 2 つの XSLT ファイルがあります。Table2 が最初に処理されます。Table1 CONFIG=Z と結合したときに Table2 の行を削除したい (つまり、(ID=2 および Type=A) および (ID=3 および Type=A) の行を削除しますが、これだけを把握する必要があります。 CONFIG=Z のレコードを削除したいことを知っている)。次に、テーブル 1 が処理されて、CONFIG=Z の行が削除されます。これは私が把握できました。
Table2 に適用される XSLT は、Table1 XML (xsl:variable name="table1Rows" select="document('Table1.xml')/Table/Row"/>) を読み込む必要があると思います。その後、CONFIG=Z である Table2 の行を削除する方法がわかりません。見た例に基づいていくつかのことを試しましたが、何も機能しませんでした。