0

xml、pdf、および tif ファイルのリストを含む XML ドキュメントがあります。各xmlに一致するpdfファイルがあることをSchematronを介してテストする必要があり、その逆も同様です。

私のXML:

<folder>
    <files>
        <file>foo.xml</file>
        <file>foo.pdf</file>
        <file>bar.xml</file>
        <!-- Missing file <file>bar.pdf</file> -->
        <file>foo.tif</file>
    </files>
</folder>

私のスキーマトロン:

<schema xmlns="http://purl.oclc.org/dsdl/schematron" queryBinding="xslt2">

<!-- XML/PDF Matches -->

<pattern abstract="false" id="xmlPdfPair">
    <rule context="folder/files//file">
        <assert test="substring-before(.,'.xml') eq substring-before(.,'.pdf')">The XML or PDF (<value-of select="."/>) does not have a matching PDF or XML file.</assert>
    </rule>
</pattern>

ファイルに存在する必要がある欠落している bar.pdf でルールを起動したい。私のSchematronはうまくいきません。ここには for-each 構造が必要な気がします。キーを使用すると、これが簡単になりますか?

4

1 に答える 1