XML in PHP mittels Xml Schema Datei validieren
11. Dezember 2008In meinen Projekten gibt es immer eine Menge XML Schnittstellen zu implementieren und auszulesen.
Aktuell erstelle ich gerade eine Schnittstelle zum Bundesamt für Arbeit. Diese verwenden das HR-BA-XML Format und dazu gibt es eine sehr umfangreiche XML Schema Datei (XSD).
Mit XML Schema Dateien kann man wesentlich genauer die Struktur einer XML Datei festlegen als man es mit einer Document Type Definition (DTD) könnte.

Mit dieser XSD kann ich beim Entwickeln prüfen ob meiner XML den Anforderungen entspricht. In PHP geht das sehr einfach:
libxml_use_internal_errors(true);
$oDomDocument = new DomDocument('1.0','UTF-8');
$oDOMElement = $oDomDocument->createElement('HRBAXML');
$oDomDocument->appendChild($oDOMElement);
....
if(false === $oDomDocument->schemaValidate('0741_AM_HRBAXML_B.xsd')){
$aErrors = libxml_get_errors();
....
}
Wichtig ist die Fehler mit libxml_use_internal_errors(true) zu aktivieren, sonst gibt die Funktion libxml_get_errors nicht zurück.
Diese Schema Dateien sind auch sehr praktich wenn man externe Schnittstellen abruft und sichergehen will das die Struktur noch identich geblieben ist. Gerade bei geschäftkritischen Schnittstellen lohnt es sich eine Schema Datei anzulegen und gegen diese Datei die XML Daten zu prüfen.
Tags:PHP, xml, xsd
Veröffentlicht in PHP | Keine Kommentare »
