Gern stehe ich zur fachlichen Unterstützung in XML-Technologien, C#.NET, VisualBasic.NET und Java zur Verfügung. Sprechen Sie mich einfach an: Mail oder ☎ 0151 . 750 360 61


XML-Validierung: Wozu? / XML-Schema-Validierung mit ANT

XML-Schema-Validierung mit ANT

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.






Vielen Dank für Ihr Interesse an meiner Arbeit.


V.i.S.d.P.: Wilfried Grupe * Klus 6 * 37643 Negenborn

☎ 0151. 750 360 61 * eMail: info10@wilfried-grupe.de

www.wilfried-grupe.de/XSD_ANT.html