Physische Strukturen

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

XML-Text wird in Entities gespeichert. Entities werden auf verschiedene Weise definiert, meistens jedoch mit einem Dateinamen oder einem URI. Es gibt hier jedoch keinerlei Einschränkungen, und viele Systeme verwenden alternative Wege zur Speicherung von Entities; viele leben z. B. ganz glücklich in Datenbanken. In vielen XML-Dokumenten gibt es mehr als ein Entity. Der vielleicht häufigste Fall ist, daß sich das Dokument in einem Entity befindet und seine Typdefinition in einem anderen. Mit zunehmender Dokumentgröße kommen oft mehr Entities in einem Dokument vor. Das ist vermutlich in dokumentzentrierten XML-Anwendungen öfter der Fall als in datenkommunizierenden Anwendungen.

Entities sind normalerweise Namen in einem oder mehreren globalen Namensräumen. XML verlangt, daß den Entities Systembezeichner gegeben werden, die immer URIs sind. Der Begriff stammt aus der SGML-Gemeinde, wo Systembezeichner benutzt wurden, um Speicherplätze in einer Syntax anzugeben, die von den gerade verwendeten Werkzeugen eben verstanden wurde. Mit der SGML-Welt wird noch ein weiterer globaler Namensraum geteilt. Die Bezeichner in diesem Raum heißen formale öffentliche Bezeichner (formal public identifiers oder FPIs). Die Verwendung dieses Namensraumes ist in der XML-Welt sehr eingeschränkt, da man ihn nicht immer einfach auf URLs abbilden kann, mit denen beliebige Ressourcen erreichbar sind; aber es gibt Wege, es hinzubekommen. Sie werden hier und da benutzt, und im PyXML-Paket gibt es einige Unterstützung für FPIs.

Entities werden in XML für mehrere Dinge benutzt:

Dokument-Entities

Unabhängig von der Anwendung, beginnt jedes Dokument irgendwo. XML garantiert auch, daß die Dokumente im gleichen Entity enden. Das Entity, das den Dokumentanfang enthält, wird das Dokument-Entity genannt. Es ist deswegen interessant, weil es das einzige Entity ist, das völlig anonym sein darf. Eine Anwendung kann den Inhalt eines Entity direkt an den XML-Parser übergeben, sodass er damit arbeiten kann, ohne den Text aus einer Datei oder einer anderen lokalen oder entfernten Datenquelle extrahieren zu müssen.

Externe Entities

Andere physische Speichereinheiten, die zu einem Dokument beitragen, sind externe Entities. Diese können die gesamte Typspezifikation für das Dokument oder Teile davon enthalten, dürfen aber auch Dokumentinhalte enthalten. Während externe Entities von ihren Systembezeichnern und formalen öffentlichen Bezeichnern definiert werden, gibt man den meisten lokale Namen, damit man sie leichter referenzieren kann.

Externe DTD-Untermenge

Wenn ein Dokument eine Dokumenttyp-Deklaration enthält, die eine externe Dokumenttyp-Teilmenge spezifiziert, wird diese Untermenge in einem Entity angegeben. Dieses Entity ist insofern etwas Besonderes, als ihm kein lokaler Name zugeordnet ist, ist aber sonst ein normales externes Entity.

Verbundene Ressourcen

Einige Dokumente beziehen sich auf andere Dokumente, ohne sie zu einem Teil von sich selbst zu machen. Ob diese externen Ressourcen wirklich Entities sind oder nicht, ist nicht immer klar, wenn sie nicht über einen Namen referenziert werden, der in einer Entity-Deklaration definiert wird. Ein typisches Beispiel hierfür sind die Ressourcen, die mit einem URI im Attribut href des Elements a in HTML identifiziert werden. Sie werden nicht von einem benannten Entity referenziert, und man weiß nicht immer genau, was die damit verbundene Ressource enthalten wird, wenn die Referenz hergestellt wird. Die Tatsache, daß die externe Ressource als Ziel eines Links identifiziert wird, ist wichtig für das Dokument, das den Link herstellt.

  

<< 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