Beispiel: Book Library
Anhand dieses Beispiels wird gezeigt, wie Sie mit Hilfe der generierten Schema Wrapper-Bibliotheken schemakonforme XML-Dokumente programmatisch schreiben oder lesen. Werfen Sie zuerst einen Blick auf die Struktur des inkludierten Beispielschemas, bevor Sie den Beispielcode verwenden.
In dem in diesem Beispiel verwendeten Schema ist eine Bibliothek mit Büchern beschrieben. Unten sehen Sie die vollständige Definition des Schemas. Speichern Sie dieses Codefragment als Library.xsd, wenn Sie dieselben Ergebnisse wie in diesem Beispiel erhalten möchten. Sie benötigen dieses Schema zur Generierung der in diesem Beispiel verwendeten Codebibliotheken.
<?xml version="1.0" encoding="UTF-8"?> |
Library ist ein Root-Element vom Typ complexType. Grafisch kann es in der Schema-Ansicht von XMLSpy folgendermaßen dargestellt werden:
Wie oben gezeigt, hat die Bibliothek ein Attribut LastUpdated (definiert als xs:dateTime) und enthält eine Sequenz von Büchern. Jedes Buch hat den Typ xs:complexType und verfügt über zwei Attribute: eine ID (definiert als xs:integer) und ein Format. Das Format eines Buchs kann hardcover, paperback, audiobook oder e-book sein. Im Schema ist Format als xs:simpleType definiert, für den eine Enumeration der oben angeführten Werte verwendet wird..
Außerdem hat jedes Buch ein Title-Element (definiert als xs:string) sowie ein oder mehrere Author-Elemente (definiert als xs:string).
Die Bibliothek kann auch Bücher enthalten, die Wörterbücher sind. Wörterbücher haben den Typ DictionaryType, der durch Erweiterung vom Typ BookType abgeleitet ist. Ein Wörterbuch erbt also alle Attribute und Elemente eines Buchs plus zwei weitere Elemente: FromLang und ToLang, wie unten gezeigt.
In den Elementen FromLang und ToLang ist die Quell- und Zielsprache des Wörterbuchs gespeichert.
Eine XML-Instanzdatei, die gemäß dem obigen Schema gültig ist, könnte also wie im Codefragment unten aussehen (Vorausgesetzt sie befindet sich im selben Verzeichnis wie die Schemadatei):
<?xml version="1.0" encoding="utf-8"?> |
In den nächsten Kapiteln wird beschrieben, wie eine solche Datei programmatisch gelesen bzw. in diese Datei programmatisch geschrieben werden kann. Generieren Sie zuerst den Schema Wrapper-Code anhand des obigen Schemas. Gehen Sie dabei vor, wie unter Generieren von Code anhand von XML-Schemas oder DTDs beschrieben.