XML-Validierung: Wozu? / XML-Schema-Validierung mit ANT
![]() |
![]() |
➪ Neben zahlreichen anderen Features bietet ANT auch gute Unterstützung zur Validierung von XML-Dokumenten mit XML-Schema.
Im folgenden ANT-Script wird das Target tuwas gestartet, das via antcall zwei Mal auf das zweite Target xsdvalidate zugreift und diesem jeweils einen Parameter xmldatei übergibt.
xsdvalidate gibt zunächst die Info aus, dass die mit dem Parameter xmldatei übergebene Datei gegen eine spezielle XML-Schema-Datei "Ort_Elemente.xsd" validiert wird, bevor der eigentliche Validierungsvorgang gestartet wird.
Die Dateipfade zu den XML- und XSD-Dateien können bei Bedarf (teilweise oder ganz) in separate Properties ausgelagert werden, wie es im unten dargestellten Beispiel mit dem Property wgpath geschehen ist. Der tatsächliche Dateipfad von "${wgpath}/xsd/Ort_Elemente.xsd lautet daher "C:/wg/xsd/Ort_Elemente.xsd".
<project name="MYANTPROJECT" default="tuwas">
<property name="wgpath" value="C:/wg"/>
<target name="tuwas">
<antcall target="xsdvalidate">
<param name="xmldatei" value="Ort_Elemente.xml"/>
</antcall>
<antcall target="xsdvalidate">
<param name="xmldatei" value="Ort_Elemente_tab.xml"/>
</antcall>
</target>
<target name="xsdvalidate">
<echo
message="validiere ${xmldatei} gegen Ort_Elemente.xsd"/>
<schemavalidate
failonerror="no"
warn="yes"
nonamespacefile="${wgpath}/xsd/Ort_Elemente.xsd"
file="${wgpath}/input/${xmldatei}"/>
</target>
</project>
Das System gibt für das oben dargestellte Beispiel die folgenden Meldungen zurück. Während "Ort_Elemente.xml" keine Validierungsprobleme verursachte, lief "Ort_Elemente_tab.xml" auf einen (provozierten) Fehler, nach dem der Prozess abbricht.
tuwas:
xsdvalidate:
[echo] validiere Ort_Elemente.xml gegen Ort_Elemente.xsd
xsdvalidate:
[echo] validiere Ort_Elemente_tab.xml gegen Ort_Elemente.xsd
[schemavalidate]
C:\wg\input\Ort_Elemente_tab.xml:2:7:
cvc-elt.1: Deklaration des Elements 'ROOT' kann nicht gefunden werden.
[schemavalidate]
C:\wg\input\Ort_Elemente_tab.xml is not a valid XML document
wg / 12. April 2018
Fragen? Anmerkungen? Tipps?
Bitte nehmen Sie Kontakt zu mir auf.
V.i.S.d.P.: Wilfried Grupe * Klus 6 * 37643 Negenborn
☎ 0151. 750 360 61 * eMail: info10@wilfried-grupe.de