Ich stehe mal wieder vor einem Problem, das sich einfach anhört, aber für mich trotz langem Googeln nicht zu lösen ist.
In einer XML-Datei soll das "Attribut1" (String) von "Element1" nur bestimmte Werte annehmen dürfen.
Dazu werden die Werte in einer zweiten XML-Datei wie folgt definiert:
Mittels Schematron soll jetzt überprüft werden, ob "Attribut1" überall einen der definierten Werte enthält.
Mit
werden die Werte in die Schematrondatei eingelesen. Die habe ich jetzt dort als String-Array und kann sie auch in eine Variable packen.
Ich definierte für "Element1" eine Regel:
Soweit so gut.
Aber welchen XPath-Ausdrucke schreibe ich bei "test" hin, damit dort überprüft wird, ob derjenige "Attribut1"-Wert, der gerade zu überprüfen ist, auch tatsächlich erlaubt/definiert ist?
In einer XML-Datei soll das "Attribut1" (String) von "Element1" nur bestimmte Werte annehmen dürfen.
Dazu werden die Werte in einer zweiten XML-Datei wie folgt definiert:
Code:
<ROOT> <valuedef> <name>WertA</name> </valuedef> <valuedef> <name>WertB</name> </valuedef> </ROOT>
Mit
Code:
document('wertdefinitionen.xml')/ROOT/valuedef/name/text()
Ich definierte für "Element1" eine Regel:
Code:
<pattern>
<rule context="Element1">
<assert test="./@Attribut1???">
Das Attribut darf nur einen definierten Wert enthalten.
</assert>
</rule>
</pattern>
Aber welchen XPath-Ausdrucke schreibe ich bei "test" hin, damit dort überprüft wird, ob derjenige "Attribut1"-Wert, der gerade zu überprüfen ist, auch tatsächlich erlaubt/definiert ist?
Comment