XML-Informationsset
XML Information Set (Infoset) ist eine W3C-Spezifikation (World Wide Web Consortium) vom 4. Februar 2004. Ein XML-Informationsset ist ein abstraktes Modell der Informationen, die in einem XML-Dokument gespeichert werden. Das Informationsset sorgt in einer solchen Weise für eine Trennung der Daten und Information, die für die meisten herkömmlichen Einsatzmöglichkeiten von XML geeignet ist. Mehrere der konkreten XML-Datenmodelle werden definiert, indem auf Elemente in XML-Informationssets und ihre Eigenschaften verwiesen wird.
Während ein XML-Informationsset ein abstraktes Modell der in einem XML-Dokument gespeicherten Informationen ist, ist ein Informationselement eine abstrakte Darstellung einer Komponente eines XML-Dokuments. SOAP Version 1.2 nutzt diese Abstraktion, um die Informationen in einer SOAP-Nachricht ohne jeglichen Verweis auf XML Version 1.x zu definieren. Insbesondere die SOAP-HTTP-Bindung lässt alternative Medientypen zu, die mindestens die Übertragung des SOAP-XML-Infosets unterstützen.
SOAP Message Transmission Optimization Mechanism (MTOM) beschreibt SOAP-Konstrukte der Version 1.2 mit Informationselementen, während SOAP 1.1 mit XML-Elementen definiert wird. MTOM ermöglicht SOAP-Bindungen, das Übertragungs- und/oder das Sendeformat einer SOAP-Nachricht durch selektive Verschlüsselung von Teilen der Nachricht zu optimieren und der SOAP-Anwendung gleichzeitig weiterhin ein XML-Informationsset zu präsentieren. Das Attribut der SOAP Version 1.2 ist jetzt im SOAP-Namespace enthalten. Die XML-Informationsset erfordern die Unterstützung von XML-Namespaces. Die XML-Basisempfehlung erfordert keine Unterstützung von XML-Namespaces. Namespaces werden jedoch für die Unterstützung des XML-Schemas benötigt.
Das XML-Informationsset benötigt und bevorzugt keine spezielle Schnittstelle oder Schnittstellenklasse. In der Spezifikation "XML Information Set" wird das Informationsset zur Verdeutlichung und Übersichtlichkeit als Baumstruktur dargestellt, aber es wird nicht vorausgesetzt, dass das XML-Informationsset über eine Baumstruktur bereitgestellt wird. Andere Typen von Schnittstellen, wie z. B. ereignis- oder abfragebasierte Schnittstellen, sind ebenfalls in der Lage, Informationen bereitzustellen, die dem Informationsset entsprechen. Solange die Informationen im Informationsset XML-Anwendungen bereitgestellt werden, entweder auf die eine oder die andere Weise, sind die Anforderungen des XML-Informationssets erfüllt.
- ein eindeutiges minimales Informationsset, das sich aus den Basiseigenschaften der Basiselemente und nichts anderem zusammensetzt,
- ein eindeutiges maximales Informationsset, das sich aus allen Basis- und allen peripheren Elementen mit allen peripheren Eigenschaften und einem Informationsset für jede Kombination vorhandener und nicht vorhandener peripherer Elemente und Eigenschaften dazwischen zusammensetzt. Die Zwischeninformationssets müssen mit dem maximalen Informationsset vollständig kompatibel sein.
Informationssetelemente
Das XML-Informationsset ist eine in einem korrekt formatierten XML-Dokument verfügbare Beschreibung eines abstrakten Datenmodells eines XML-Dokuments mithilfe einer Gruppe von Informationssetelementen. Ein Informationselement ist eine abstrakte Beschreibung eines Abschnitts eines XML-Dokuments, und jedes Informationselement hat eine Gruppe zugehöriger benannter Eigenschaften. Alle anderen Informationselemente sind in den Eigenschaften des Informationselements "document" direkt oder indirekt über die Eigenschaften der anderen Informationselemente zugänglich.
Richtlinien für die Verwendung von Informationssetelementen:
- Ein XML-Dokument muss nicht gültig sein, um ein Informationsset haben zu können.
- Ein XML-Dokument hat ein Informationsset, wenn es die Namespacebedingungen erfüllt.
- Ein XML-Dokument hat ein Informationsset, wenn es korrekt formatiert ist.
- Es ist nur ein einziges Dokumentationsinformationselement im Informationsset zulässig.
- Ein Informationsset für ein XML-Dokument setzt sich aus mindestens zwei Informationselementen zusammen.
- Das Informationsset für jedes korrekt formatierte XML-Dokument enthält mindestens die minimalen Informationselemente: ein Element document und ein Informationselement element.
- Jedes Informationselement hat eine Reihe zugeordneter Eigenschaften, von denen einige Basiseigenschaften und einige periphere Eigenschaften sind.
- Informationselement für Dokument
- Informationselemente für Elemente
- Informationselemente für Attribute
- Informationselemente für Verarbeitungsanweisungen
- Informationselemente für nicht erweiterte Entitätsreferenzen
- Informationselemente für Zeichen
- Informationselemente für Kommentare
- Informationselemente für Dokumenttypdeklarationen (DTD, Document Type Declaration)
- Informationselemente für nicht syntaktisch analysierte Entitäten
- Informationselemente für Notationen
- Informationselemente für Namespaces
In bestimmten Fällen wirken sich ungültige Einträge auf die Werte aus, die einigen Eigenschaften zugeordnet werden. Entitäten, Notationen, Elemente und Attribute sind möglicherweise nicht deklariert. Notationen und Elemente können mehrfach deklariert werden. Mehrfachdeklarationen sind für Entitäten und Attribute gültig. Eine ID kann undefiniert sein oder mehrfach deklariert werden. Auf solche Fälle wird in den Informationselementdefinitionen in der Spezifikation "XML Information Set" hingewiesen, sofern es relevant ist.
Syntax
Eigenschaft | Beschreibung |
---|---|
[children] | Eine sortierte Liste mit untergeordneten Informationselementen in Dokumentreihenfolge. |
[document element] | Das Konfigurationselement element, das dem Element document entspricht. |
[notations] | Eine nicht sortierte Liste der Informationselemente für Notationen, eines für jede in der DTD definierte Notation. Wenn eine Notation mehrfach deklariert ist, hat diese Eigenschaft keine Bedeutung. |
[unparsed entities] | Eine nicht sortierte Liste mit Konfigurationselementen für nicht syntaktisch analysierte Entitäten, eines für jede in der DTD deklarierte nicht syntaktisch analysierte Entität. |
[base URI] | Der Basis-URI der Dokumententität. |
[character encoding scheme] | Der Name des Zeichencodierungsschemas, in dem die Dokumententität ausgedrückt wird. |
[standalone] | Eine Indikation für den eigenständigen Status des Dokuments (yes oder no). Diese Eigenschaft wird aus der optionalen Deklaration des eigenständigen Dokuments in der XML-Dokumentation am Anfang der Dokumententität abgeleitet und hat keine Bedeutung, wenn es keine Deklaration des eigenständigen Dokuments gibt. |
[version] | Eine Zeichenfolge, die die XML-Version des Dokuments darstellt. Diese Eigenschaft wird aus der XML-Deklaration abgleitet, die optional am Anfang der Dokumententität vorhanden ist, und hat keine Bedeutung, wenn keine XML-Deklaration vorhanden ist. |
[all declarations processed] | Diese Eigenschaft ist nicht direkt Teil des Informationssets des Dokuments. Sie ist vielmehr ein Hinweis darauf, ob der Prozessor die vollständige DTD gelesen hat. Die Eigenschaft hat einen booleschen Wert. Wenn die Eigenschaft den Wert "false" hat, können bestimmte Eigenschaften unbekannt sein (siehe die Beschreibungen weiter unten). Wenn die Eigenschaft den Wert "true" hat, sind diese Eigenschaften niemals unbekannt. |
Alle Informationssets sollen das XML-Dokument mit bereits erweiterten Entitätsreferenzen beschreiben, d. h. dargestellt durch die Informationselemente, die ihrem Ersetzungstext entsprechen. Falls eine Entitätsreferenz nicht erweitert werden kann, weil ein XML-Prozessor die Deklaration oder ihren Wert nicht lesen kann, wird eine explizite Bedingung für die Darstellung einer solchen Referenz im Informationsset gestellt.