In einem meiner früheren Beitrage habe ich XML-basierte Schlüsselverzeichnisse vorgestellt, deren Struktur mit der Beschreibungssprache XSD festgelegt wird. Nun möchte ich daran anknüpfen und zeigen, wie einfach die Validierung einer solchen XML-Datei unter VBA realisiert werden kann.

Validierung

Um das Beispiel nachstellen zu können, benötigen wir lediglich eine XML-und eine dazu passende Schema-Datei im XSD-Format. 

Dim strXmlDateiPfad As String
Dim strXsdDateiPfad As String

strXmlDateiPfad = ThisWorkbook.Path & "\schluesselVerzeichnis.xml"
strXsdDateiPfad = ThisWorkbook.Path & "\schluesselVerzeichnis.xsd"

Set objXMLDatei = CreateObject("MSXML2.DOMDocument.6.0")

Set objXMLDatei.Schemas = CreateObject("MSXML2.XMLSchemaCache.6.0")
objXMLDatei.Schemas.Add "", strXsdDateiPfad

objXMLDatei.Load (strXmlDateiPfad)

If objXMLDatei.parseerror.errorCode <> 0 Then
    Err.Raise Number:=1, Description:="Fehler: " & objXMLDatei.parseerror.reason
End If

Als Erstes definieren wir in der Zeile 7 das XML-Objekt und weisen seiner Eigenschaft Schemas (Zeile 9) das erstellte XSD-Objekt zu. Um nun die Verbindung zu der konkreten Schema-Datei herzustellen, fügen wir deren Pfad mit dem Operator Add hinzu(Zeile 10).

Nun sind alle Vorbereitungen getroffen und wir können in der Zeile 12 den Inhalt der XML-Datei in das Objekt geladen. Die Validierung der XML-Datei erfolgt dabei automatisch – deren Ergebnis lesen wir einfach im Attribut errorCode ab.
Lief die Validierung auf einen Fehler, können wir seine Beschreibung dem Attribut reason entnehmen. Die Fehlermeldung ist in der Regel sehr ausführlich und zeigt einem genau die Stelle (in der Regel ein Knoten), bei dem der erste Fehler festgestellt wurde.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert