Arten von Konformität

(Auszug aus "Python & XML" von Christopher A. Jones & Fred L. Drake, Jr.)

Wie bei jeder Spezifikation ist der wichtigste Grund für die Existenz der XML-Spezifikation der, bei Dokumenten zu prüfen, ob sie ihr standhalten, und sicherzustellen, daß sie der Spezifikation entsprechen, also mit ihr konform gehen. Falls dem so ist, können die Regeln der Spezifikation benutzt werden, um das Dokument zu lesen, zu transformieren oder es zu benutzen. Wir dürfen jedoch nicht vergessen, daß XML zwei Dinge definiert: einmal die Syntax von individuellen Dokumenten und dann eine Methode, neue Sprachen mit XML zu definieren. Dabei dürfen wir auch nur ersteres von beiden benutzen, also muß XML in beiden Fällen definieren, was es bedeutet, mit der Spezifikation konform zu sein.

Wenn ein Dokument die XML-Syntax benutzt, aber nicht von einer bestimmten Auszeichnungssprache abhängig ist, die mit den Mitteln der XML-Empfehlung definiert wurde, muß es wohlgeformt sein, um konform zu XML zu sein. Dies ist eine Art der Konformität, die von XML eingeführt und nicht von SGML geerbt wurde. Auf der anderen Seite ist ein Dokument, das behauptet, eine bestimmte Auszeichnungssprache zu verwenden, die in einer DTD definiert ist, gültig, wenn es wohlgeformt ist und die Elemente und Zeichendaten in einer Weise angeordnet sind, die den Regeln der angegebenen DTD gehorcht.

Die XML-Spezifikation definiert eine Ansammlung von Text als XML-Dokument, wenn es nach den Regeln der Spezifikation wohlgeformt ist. Der Begriff der Wohlgeformtheit wird in XML oft gebraucht und bezieht sich auf ein Dokument, das syntaktisch akzeptabel ist. Beispiel:

<?xml version="1.0"?>
<book>
    <title>Python und XML</title>
</book>

Das vorausgehende Dokument ist wohlgeformt. Das heißt, über die XML-Deklaration hinaus (die detaillierter unter Der Dokument-Prolog später auf der Seite "XML-Dokumente erstellen" beschrieben wird), die angibt, daß das Dokument die Version 1.0 von XML benutzt, werden sowohl die Elemente book als auch title derart geöffnet und geschlossen, daß Elemente strikt hierarchisch ineinander verschachtelt sind. Sie können kein Buch öffnen und eine Zeitschrift schließen.

Die Wohlgeformtheit ist notwendig, aber nicht ausreichend, um das Konzept der Gültigkeit zu beschreiben, das von der Konformität eines Dokuments zu einer Dokumenttyp-Definition handelt. Es ist eine Sache, eine syntaktisch akzeptable Struktur zu haben, aber eine ganz andere, zu garantieren, daß die im Dokument enthaltene Information in der richtigen Weise organisiert ist und alle notwendigen Elemente enthält, um in einer Anwendung oder Transaktion von Nutzen zu sein.

Die XML-Spezifikation teilt alle XML-Prozessoren in zwei Klassen: validierend und nicht-validierend. Unabhängig von der Validierung müssen beide Arten von Prozessoren Verstöße gegen die Wohlgeformtheit der Spezifikation berichten; sonst könnte es unmöglich sein, ein XML-Dokument zu parsen. Ein validierender Prozessor muß in der Lage sein, der Anwendung Verstöße gegen die DTD zu berichten. Dazu muß ein validierender Prozessor die gesamte DTD lesen und alle externen Entities (werden in Physische Strukturen beschrieben) auflösen und parsen, die in der DTD selbst und im Dokument vorkommen. Im Gegensatz dazu müssen nicht-validierende Prozessoren nur das Dokument und dessen interne DTD-Teilmenge auf Wohlgeformtheit prüfen. Zur Überprüfung eines Dokuments auf Wohlgeformtheit muß kein Zugriff auf externe Entities erfolgen.

Seit Erscheinen alternativer Schemasprachen wird eine dritte Form von Konformität informell beschrieben. Man sagt, ein Dokument sei Schema-gültig hinsichtlich eines bestimmten Schemas (unabhängig von der Sprache, in der das Schema ausgedrückt wird), wenn das Dokument wohlgeformt ist und seine Struktur gemäß den Regeln dieser speziellen Schemasprache konform zu diesem bestimmten Schema ist. Dies ist eine Verallgemeinerung des in der XML-Empfehlung angegebenen Konzepts der Gültigkeit. Alle gültigen Dokumente sind ebenfalls Schema-gültig für das Schema, das von ihrer DTD definiert wird (aber sie können nach anderen Schemata ungültig sein).

  

<< zurück vor >>

 

 

 

Tipp der data2type-Redaktion:
Zum Thema Python & XML bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an:

Copyright © 2002 O'Reilly Verlag GmbH & Co. KG
Für Ihren privaten Gebrauch dürfen Sie die Online-Version ausdrucken.
Ansonsten unterliegt dieses Kapitel aus dem Buch "Python & XML" denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

O’Reilly Verlag GmbH & Co. KG, Balthasarstraße 81, 50670 Köln, kommentar(at)oreilly.de