Home
Über mich
Blog
Veröffentlichungen
IT-Trainings
Impressum


XSD bewahrt nicht vor XSL-Fehlern

Es ist also sinnvoll, sich mit der Frage der Datenvalidierung näher zu befassen. Zumal XML Schema reichlich Möglichkeiten bietet, die Prüfkriterien zwar sehr scharf, aber auch vage bis völlig unwirksam zu definieren. Im letzten Fall "haben" wir zwar eine XSD, jedoch mit völlig entschärften Kriterien (xs:any): eine Validierung des XML Inputs ist dann wertlos und gleichbedeutend mit einem Verzicht. Insofern hängt die Aussagekraft der Validierung elementar von der Qualität des XML Schemas ab.

Durch eine gezielte Zusammenstellung ist es möglich, in einer XSD zu definieren, welche Teilstrukturen validiert und welche von der Validierung ausgenommen werden sollen. Die XSD-Prüfung der XML Input Dokumente kann einer XSL-Transformation vorgeschaltet werden mit der Möglichkeit, die XSL Transformation erst gar nicht zu starten, wenn die XSD-Validierung auf einen Fehler läuft.

Die Schema-Validierung von einzelnen Datentypen bis hin zu komplexen Teilstrukturen kann aber auch während der XSL-2.0-Transformation erfolgen. Hier kann eine direkte Beziehung zwischen XSL-Programmierung und Datenkontrolle erfolgen. Diese enge Bindung von Typkontrolle und Verarbeitungslogik in einem Arbeitsschritt (also während der XSL-Transformation; die Typprüfung kann zudem temporäre Variablen, Parameter, Sequences umfassen) scheint mir weit effizienter zu sein als die abgekoppelte Schemavalidierung vor Transformationsbeginn, die sich primär auf das gesamte XML-Dokument bezieht.

Unabhängig von der XML-Input-Validierung kann (und sollte) eine Prüfung des generierten Outputs erfolgen, wofür (im Fall der Output ist wieder ein XML Dokument) ein zweites XML Schema (Target-XSD) verfügbar sein müßte. Wie vorher, hängt die Aussagekraft auch dieser Prüfung elementar von der Qualität des XML Schemas ab.

Je nach Sachlage kann es sinnvoll sein, auf die vorgeschaltete Komplett-Input-Validierung zu verzichten und eine Teil-Validierung in die Konvertierungsphase zu verlagern, um die getroffenen Annahmen der Verarbeitungslogik abzusichern. Davon unabhängig kann der Output separat validiert werden.

Eine XML Schema-Validierung vor oder während der Konvertierungsphase entbindet jedoch nicht von der Verpflichtung zur Sorgfalt in der Programmlogik. Auch eine hochwertige Schema-Validierung bietet keinen hinreichenden Schutz vor Programmierfehlern der Konvertierungsphase: XSD ersetzt keine Problembehandlung.

Wenn es etwa darum geht, optionale Inputfelder auf mandantory Output mappen zu müssen, dann hilft die Schemavalidierung bestenfalls bei der Typkontrolle. Fehlende optionale Elemente bzw. Attribute werden nicht moniert; die XSD-Prüfung ist hier also keine Hilfe. Hier muß die Programmierqualität der Verarbeitungslogik (insbesondere Fehlerbehandlung und Testing) greifen, damit das Ergebnis verwendbar ist.

qrpic/XSD2_2.jpg

wg / 30. September 2017




Fragen? Anmerkungen? Tips?

Bitte nehmen Sie Kontakt zu mir auf (info10@wilfried-grupe.de).



Vielen Dank für Ihr Interesse an meiner Arbeit.


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

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