Der erste Schritt ist die Erstellung einer Variablen mit einer eindeutigen, durch Komma begrenzten Liste aller Elemente im XML-Dokument. Dies erfolgt mithilfe der Code-Ausschnitte in Liste C. Hier werden die xsl:key-Elemente dazu verwendet, Indexe von Elementen nach Namen und von Attributen nach Namen zu erstellen.
Diese Indexe werden dann in Verbindung mit den Funktionen generate-id() und key() verwendet, um eine Gruppierung nach der Muench’schen Methode durchzuführen und eindeutige Werte sicherzustellen. Mit der Funktion substring() wird das Komma am Ende entfernt.
Liste C
Endeutige Elemente und Attribute
Die durch Komma begrenzte Elementliste wird dann zur Erstellung individueller xs:element-Definitionen verwendet, die in die folgenden möglichen Kategorien fallen können:
Um festzustellen, ob ein Element entweder untergeordnete Elemente oder Attribute besitzt, ist ein anderer als der oben beschriebene Ansatz erforderlich. Der Grund dafür ist, dass nach spezifischen Elementen und Attributen gesucht wird, nämlich jenen, die mit einem bestimmten Parent-Element verbunden sind. Zuerst wird aus allen untergeordneten Elementen mit Parent-Element, dessen Name mit dem aktuellen Element übereinstimmt, eine sortierte Elementliste erstellt. Duplikate werden ebenso entfernt wie das hängende Komma, und es entsteht eine eindeutige Liste mit untergeordneten Elementen. Das Verfahren ist für Attribute grundlegend dasselbe.
Der Code für die gesamte Prozedur zur Generierung eines W3C-Schemas ist in Liste D enthalten, ein Muster-XML-Dokument befindet sich in Liste E und das Schema in Liste F.
Liste D
XSL zur Erstellung eines W3C-Schemas
Liste E
Muster-XML-Dokument
Liste F
Schema
Es dauert etwa einen Tag diesen Code zu schreiben, aber wenn man bedenkt, wie aufwändig es ist, ein Schema per Hand zu schreiben, ist es die Mühe wert. Das resultierende Schema ist zwar nicht sonderlich angepasst (jeder Datentyp ist xs:string und minOccurs ist immer 0), doch es geht in jedem Fall sehr viel schneller, ein bestehendes Schema anzupassen als ein neues zu schreiben.
Neueste Kommentare
Noch keine Kommentare zu So lässt sich ein fehlendes XML-Schema selbst generieren
Kommentar hinzufügenVielen Dank für Ihren Kommentar.
Ihr Kommentar wurde gespeichert und wartet auf Moderation.