Ich habe einen XML-Schnipsel als solche:Wie schreibe ich diesen Schematron Validierungstest für XML Snippet?
<AAA>
<Field name="a"/>
<Field name="b"/>
<Field name="x"/>
<User id="x" id2="f"/>
<User id="y"/>
</AAA>
<AAA>
<Field name="r"/>
<Field name="z"/>
</AAA>
Ich herrsche, dass eine solche benötigen, wenn der Nutzer-Tag vorhanden ist, sollte es, wenn die Attributwerte von id
und id2
unter dem existieren zu überprüfen, zu Name Attribut eines Feldes.
So in dem ersten AAA
-Tag, wird es bestätigen und 2 Fehler geben, weil "f"
nicht als Feldname existiert und auch nicht "y"
.
Die AAA-Tags nicht immer User-Tags haben, und die User-Tags haben nicht immer beide id
und id2
.
Ich habe mit einigen XPath-Ausdrücken versucht, aber ohne Erfolg.
Verwenden Sie Schematron mit XPath 2.0 oder 1.0? In XPath 2.0 können Sie leicht 'einige $ Benutzer in Benutzer erfüllt nicht schreiben ($ user/(@ id, @ id2) = Feld/@ name'. –
Das hat es nicht ganz getan. – user3418847
Bitte zeigen Sie ein komplettes Eingabe-XML-Dokument Vielen Dank! "" Das hat es nicht ganz geschafft "ist keine sehr präzise Fehlermeldung. Was genau hat nicht funktioniert? –