是否可以更一般地编写此测试。我已经坐在上面几个小时了,我想不通:D。
<pattern>
<title>Pravidla pro měnu(CZK/USD)</title>
<rule context="/o:objednávka/o:položky">
<report test="(contains(o:položka[1]/o:cena/@měna,'CZK') and
contains(o:položka[2]/o:cena/@měna,'USD'))or(contains(o:položka[2]/o:cena/@měna,'CZK') and
contains(o:položka[1]/o:cena/@měna,'USD'))">V objednávce
musí být jen jedna měna.</report>
</rule>
XML 文档
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="cssTrans.css" type="text/css" ?>
<?xml-model href="objednavka.sch" type="application/xml" schematypens="http://purl.oclc.org/dsdl/schematron"?>
<objednávka xmlns="urn:x-eshop:document-schemas:purchase-order">
<položky>
<položka kód="a">
<název>Sekačka na trávu</název>
<počet mj="ks">1</počet>
<cena měna="USD">0.9</cena>
<popis>http://example.org/sekacka.html</popis>
</položka>
<položka kód="d">
<název>Travní semeno</název>
<počet mj="kg">2.5</počet>
<cena měna="CZK">18001</cena>
</položka>
</položky>
</objednávka>