ERLEDIGT
JA
JA
ANTWORTEN
3
3
ZUGRIFFE
1219
1219
EMPFEHLEN
-
Hallo zusammen!
Ich habe folgendes Problem:
Ich möchte gern mit Hilfe von XPath Ausdrücken die Inhalte eines XML-Dokumentes in Schematron vergleichen. Nur leider bekomme ich das nicht so hin wie gewollt.
hier ein Ausschnitt aus dem XML:
Ich möchte nun die Werte aus <Change_level> und <Change_date> vergleichen. Sie sollen den gleichen Inhalt haben, d.h. sonst Fehlermeldung.Code xml:1 2 3 4 5 6 7 8 9 10 11 12
<kbl:KBL_container> <External_reference> <Document_type='KAB'> <Change_level>300611</Change_level> <finishing>250811</finishing> </External_refernce> <Harness> <Change> <Change_date>110509</Change_date> </Change> </Harness> </kbl:KBL_container>
Wenn diese nicht überein stimmen kann ich mit Hilfe von Schematron eine Fehlermeldung ausgeben.
Ich habe es bis jetz leider nur geschafft die Elemente <Change_level> und <finishing> miteinander zu vergleichen.
meine bisherige Regel mit Schematron, die leider nicht funktioniert:
Code xml:1 2 3 4 5 6 7
<pattern> <rule context="//External_refernce[Document_type='KAB'] | //Harness/Change"> <assert test="Change_level=Change_date"> Achtung! Änderungsstand stimmt nicht überein. </assert> </rule> </pattern>
Kann mir jemand helfen? ich habe schon vieles ausprobiert aber leider geht es nicht richtig.
Viele GrüßeGeändert von ComFreek (02.01.12 um 15:27 Uhr) Grund: [xml]-Tags hinzugefügt!
-
03.01.12 07:22 #2
- Registriert seit
- Jun 2005
- Beiträge
- 8.169
Hi.
Statt External_reference hast du External_refernce geschrieben.
Ansonsten passt dein Kontext ja nicht, da Change_level und Change_date nicht unterhalb des gleichen Elements vorkommen.
Ich würde es mal so probieren:
Code xml:1 2 3 4 5 6 7
<pattern> <rule context="//kbl:KBL_container"> <assert test="External_reference/Change_level=Harness/Change/Change_date"> Achtung! Änderungsstand stimmt nicht überein. </assert> </rule> </pattern>
GrußIf at first you don't succeed, try again. Then quit. No use being a damn fool about it.
-
Hi!
Danke für die Antwort, allerdings funktioniert es leider noch nicht.
Das Dokument ist nach der Validierung immer noch gültig, obwohl es unterschiedliche Daten sind. Ich habe es auch mit <report> versucht, aber auch kein erfolg.
Es funktioniert aber wenn ich den Kontext //kbl:KBL_container/External_reference setze und darunter <Change_level> mit <finishing> vergleiche.
Es sollte doch auch funktionieren, wenn man den Kontext eine Ebene höher setzt?
Irgendwie steh ich da aufn Schlauch
Viele Grüße
-
Hi.
Das Problem ist gelöst.
Ich muss im Kontext External_reference auswählen, und dann assert auf das Elternelement weisen.
<rule context="//External_reference[Document_type='KAB']">
<assert test="Change_level=..//Change_date">
Viele Grüße
Ähnliche Themen
-
Werte vergleichen
Von Kantoval im Forum Javascript & AjaxAntworten: 2Letzter Beitrag: 01.11.09, 10:34 -
Java: MySQL Time Werte mit Werte vergleichen
Von Genius2 im Forum JavaAntworten: 6Letzter Beitrag: 10.06.09, 14:27 -
Werte vergleichen
Von Einsteinprog im Forum C/C++Antworten: 0Letzter Beitrag: 28.03.07, 22:32 -
2 Werte vergleichen
Von TobiasTokio im Forum Visual Basic 6.0Antworten: 2Letzter Beitrag: 04.04.06, 02:18 -
werte vergleichen
Von Worka im Forum PHPAntworten: 2Letzter Beitrag: 12.06.04, 00:32





Zitieren
Login





