Lexikalischer Raum und Werteraum

(Auszug aus "XML Schema" von Eric van der Vlist)

W3C XML Schema führte eine Entkoppelung zwischen den Daten, wie sie aus den Instanzdokumenten ausgelesen werden können (dem »lexikalischen Raum«), und den Werten, wie sie entsprechend dem Datentyp interpretiert werden (dem »Werteraum«), ein.

Bevor wir in die Definition dieser beiden Räume einsteigen können, müssen wir das Verarbeitungsmodell und die Transformationen untersuchen, die ein in ein XML-Dokument geschriebener Wert über sich ergehen läßt, bevor er validiert wird. Der Inhalt von Elementen und Attributen durchläuft während der Verarbeitung die folgenden Schritte:

Serialisierungsraum

Die Bytefolge, die tatsächlich in einem Dokument gespeichert ist (entweder als Wert eines Attributs oder als Textknoten), kann als einem ersten Raum zugehörig angesehen werden, den wir den »Serialisierungsraum« nennen können.

Geparster Raum

Die XML 1.0-Empfehlung legt eindeutig fest, daß der Serialisierungsraum für Anwendungen keine unmittelbare Bedeutung hat. XML-konforme Parser unterziehen den Wert einer ersten Transformation, bevor er die Anwendung erreicht: Die gelesenen Zeichen werden in Unicode überführt, Zeilenende (für Textknoten und für Attribute) sowie Whitespace (nur für Attribute) werden normalisiert. Das Ergebnis dieser Transformation ist das, was an die Anwendung – auch an Schema-Prozessoren – weitergereicht wird. Dieser Wert gehört zu einem Raum, den wir den »geparsten Raum« nennen können.

Lexikalischer Raum

Bevor die Validierung beginnt, unterzieht W3C XML Schema diesen Wert, der vom XML-Parser weitergeleitet wurde, einer zweiten Runde von Whitespace-Verarbeitung. Diese hängt vom Datentyp des Werts ab und kann Whitespace ignorieren, normalisieren oder aber zusammenfassen. Der Wert nach dieser Whitespace-Verarbeitung gehört zum »lexikalischen Raum«, der in der W3C XML Schema Recommendation definiert ist.

Typenhierarchie von W3C XML Schema

Abbildung: Die Typenhierarchie von W3C XML Schema

Werteraum

W3C XML Schema betrachtet ein Element des lexikalischen Raums als Darstellung eines abstrakten Werts, dessen Bedeutung oder Semantik durch seinen Datentyp definiert ist. Es kann sich hierbei um ein Stück Text, aber auch um eine Zahl, eine Datumsangabe oder einen qualifizierten Namen handeln. Die Gesamtheit der abstrakten Werte definiert den »Werteraum«.

Jeder Datentyp hat seinen eigenen lexikalischen Raum und Werteraum und seine eigenen Regeln dafür, wie eine lexikalische Darstellung mit einem Wert zu verknüpfen ist. Bei vielen Datentypen kann ein einzelner Wert mehrere lexikalische Darstellungen haben; beispielsweise kann der<xs:float> -Wert »3.1416« entsprechend auch als »03.1416«, »3.14160« oder ».31416E1« geschrieben werden. Diese Unterscheidung ist wichtig, da die grundlegenden Operationen auf Werten (wie etwa Testen auf Gleichheit oder Sortieren) im Werteraum durchgeführt werden. »3.1416« und »03.1416« werden als gleich angesehen, wenn der Typ xs:float ist, jedoch als unterschiedlich, wenn der Typxs:string lautet. Das gleiche gilt für Sortierreihenfolgen: Einige Datentypen haben eine vollständige Ordnungsrelation (jedes Wertepaar kann verglichen werden), andere haben gar keine Ordnungsrelation, und die übrigen Typen haben eine Teilordnungsrelation (Werte können nicht in jedem Fall miteinander verglichen werden).

Auch wenn zukünftige API-Versionen möglicherweise diese Werte an die Anwendungen weiterreichen werden, werden die Transformationen zwischen geparstem, lexikalischen und Werteraum derzeit nur für Zwecke der Validierung vorgenommen. Sie haben keinen Einfluß auf die Werte, die ein validierender Parser weiterreicht.

   

<< zurück vor >>

 

 

 

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

Copyright © 2003 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 "XML Schema" 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