Bei diesem Dokument handelt es sich um eine Übersetzung eines W3C-Textes. Dieser Text ist urheberrechtlich geschützt; bitte beachten Sie die nachfolgenden Hinweise des Originaldokuments. Die Rechte an der Übersetzung liegen bei den Übersetzern. Die Übersetzung hat keine durch das W3C legitimierte, normative Wirkung. Das einzige maßgebliche Dokument ist das englische Original.
Bitte senden Sie Fehler und Korrekturen zur deutschen Fassung an die Übersetzer.
Kommentare der Übersetzer, die als solche gekennzeichnet sind, unterliegen dem Urheberrecht der Übersetzer. Sie sind nicht Bestandteil des Ursprungsdokuments.
Copyright © 2001 W3C® (MIT, INRIA, Keio), All Rights Reserved. W3C liability, trademark, document use, and software licensing rules apply.
Diese Spezifikation stellt Definitionen zur Verwendung in anderen Spezifikationen bereit, die sich auf die Informationen in einem XML-Dokument beziehen.
Dieser Bereich beschreibt den Status dieses Dokuments zur Zeit seiner Veröffentlichung. Andere Dokumente können dieses Dokument ersetzen. Der aktuelle Status dieser Dokumentenserie wird vom W3C gepflegt.
Dies ist die W3C-Empfehlung XML Information Set.
Dieses Dokument wurde von Mitgliedern des W3C und anderen interessierten Gruppen überprüft und vom Direktor als eine W3C-Empfehlung gebilligt. Es ist ein stabiles Dokument und kann als Referenzmaterial verwendet oder als normative Referenz von anderen Dokumenten zitiert werden. Die Absicht des W3C bei der Erstellung dieser Empfehlung ist es, die Aufmerksamkeit auf diese Spezifikation zu lenken und deren weitläufige Verbreitung zu fördern. Dies erhöht die Funktionalität und die Interoperabilität des Webs.
Dieses Dokument wurde von der W3C XML Core Working Group als Teil der XML-Aktivität in der W3C Architecture Domain erstellt. Für Hintergrundinformationen zu dieser Arbeit konsultieren Sie das XML Activity Statement.
Es gibt Patentoffenlegungen, die mit der Spezifikation XML Information Set verbunden sind. Diese können auf der Seite XML Infoset Patent Statement eingesehen werden, in Konformität zu der W3C Policy.
Bitte senden Sie Berichte über Fehler in diesem Dokument an [email protected] (öffentliches Archiv).
Die Liste der bekannten Fehler in dieser Spezifikation ist erhältlich unter http://www.w3.org/2001/10/02/xml-infoset-errata.html.
Die englische Version dieser Spezifikation ist die einzige normative Version. Informationen zu Übersetzungen dieses Dokuments sind verfügbar unter http://www.w3.org/XML/#trans.
Eine Liste der aktuellen Empfehlungen und anderer technischer Dokumente ist unter http://www.w3.org/TR zu finden.
1 Einleitung
1.1 Namensräume
1.2 Entities
1.3 Behandlung des Zeilenendes
1.4 Base-URIs
1.5 ''Unknown'' und ''No Value''
1.6 Synthetische Infosets
2 Informationseinheiten
2.1 Die Informationseinheit für Dokumentelemente
2.2 Informationseinheiten für Elemente
2.3 Informationseinheiten für Attribute
2.4 Informationseinheiten für Verarbeitungsanweisungen
2.5 Informationseinheiten für nicht erweiterte Entity-Verweise
2.6 Informationseinheiten für Zeichendaten
2.7 Informationseinheiten für Kommentare
2.8 Die Informationseinheit für Dokumenttyp-Deklarationen
2.9 Informationseinheiten für nicht analysierte Entities
2.10 Informationseinheiten für Notationen
2.11 Informationseinheiten für Namensräume
3 Konformität
A Quellenangaben
A.1 Quellenangaben (normativ)
A.2 Quellenangaben (informativ)
B Rückmeldungsanforderungen von XML 1.0 (informativ)
C Beispiel (informativ)
D Was nicht im Information Set ist
E RDF Schema (informativ)
Diese Spezifikation definiert eine abstrakte Datenzusammenstellung, genannt XML Information Set (Infoset). Ihr Zweck ist die Bereitstellung einer beständigen Informationszusammenstellung, die in anderen Spezifikationen verwendet werden kann, die auf die Informationen in einem wohlgeformten XML-Dokument [XML] zurückgreifen müssen.
Die Spezifikation versucht weder umfassend zu sein - das primäre Kriterium für die Inklusion einer Informationseinheit oder Eigenschaft ist der erwartete Nutzen in zukünftigen Spezifikationen -, noch gibt sie eine minimale Anzahl der Informationen vor, die von einem XML-Prozessor zurückgegeben werden müssen.
Ein XML-Dokument hat ein Information Set, wenn es wohlgeformt ist und die Namensraumzwänge erfüllt, die unten beschrieben sind. Ein XML-Dokument muss nicht gültig sein, um ein Information Set zu besitzen.
Information Sets können von Methoden erzeugt werden (nicht in dieser Spezifikation beschrieben), die sich von den Methoden des Parsens eines XML-Dokuments unterscheiden. Siehe 1.6 Synthetische Infosets unten.
Das Information Set eines XML-Dokuments besteht aus (mehreren) Informationseinheiten; das Information Set für ein wohlgeformtes XML-Dokument wird mindestens eine Informationseinheit für Dokumentelemente und einige andere Informationseinheiten enthalten. Eine Informationseinheit ist eine abstrakte Beschreibung eines bestimmten Teils eines XML-Dokuments: Jede Informationseinheit hat eine Menge verbundener benannter Eigenschaften. In dieser Spezifikation werden die Eigenschaftsnamen in eckigen Klammern dargestellt, [so]. Die Typen der Informationseinheiten werden in 2 Informationseinheiten aufgelistet.
Das XML Information Set erfordert oder favorisiert keine bestimmte Schnittstelle oder eine Schnittstellenklasse. Diese Spezifikation zeigt die Information Sets der Einfachheit und Klarheit halber als einen modifizierten Baum. Es besteht jedoch nicht die Anforderung, dass das XML Information Set durch eine Baumstruktur verfügbar gemacht werden muss. Andere Interface-Typen, eingeschlossen (jedoch nicht darauf begrenzt) Event-basierte und Query-basierte Schnittstellen, können ebenfalls Informationen bereitstellen, die konform zur Spezifikation XML Information Set sind.
Die Begriffe "Information Set" und "Informationseinheit" sind in ihrer Bedeutung den generischen Begriffen "Baum" und "Knoten" ähnlich, die in der Computerwelt verwendet werden. Die ersteren Begriffe werden jedoch in dieser Spezifikation verwendet, um mögliche Verwechslungen mit anderen Datenmodellen zu vermeiden. Informationseinheiten sind nicht vollkommen mit den "Knoten" des DOM oder den Definitionen von "Baum" und "Knoten" des XPath-Datenmodells identisch.
In dieser Spezifikation werden die Worte "muss", "sollte" und "könnte" im Sinne von [IETF RFC 2119] verwendet, mit der Abweichung, dass die Worte nicht großgeschrieben werden.
Es wird nicht angenommen, dass XML 1.0-Dokumente, die nicht konform zu [Namensräume] sind, bedeutungsvolle Information Sets haben, auch wenn sie technisch wohlgeformt sind. Das bedeutet, dass diese Spezifikation kein Information Set für Dokumente definiert, die Element- oder Attributnamen mit Doppelpunkt anders verwenden, als in [Namensräume] definiert ist.
Weiterhin definiert diese Spezifikation kein Information Set für Dokumente, die relative URI-Verweise in der Namensraum-Deklaration verwenden. Dies geschieht in Übereinstimmung mit der Entscheidung der W3C XML Plenary Interest Group, wie in [Relative URI-Verweise in Namensraum-Deklarationen] beschrieben.
Der Wert einer Eigenschaft [namespace name] ist der normalisierte Wert des entsprechenden Namensraumattributs; vom Prozessor wird kein zusätzlicher URI-Ersatzmechanismus angewandt, um den Wert zu bearbeiten.
Ein Information Set beschreibt sein XML-Dokument mit bereits erweiterten Entity-Verweisen, das heißt, repräsentiert von den Informationseinheiten, die dem Ersatztext der Entity-Verweise entsprechen. Es gibt jedoch zahlreiche Umstände, in denen ein Prozessor diese Erweiterung nicht vornehmen könnte. Ein Entity könnte nicht deklariert sein oder nicht zu empfangen sein. Ein nicht validierender Prozessor könnte nach seinem Ermessen nicht alle Deklarationen lesen, und selbst wenn er dies würde, würde er vielleicht nicht alle externen Entities erweitern. In diesen Fällen wird eine Informationseinheit für nicht erweiterte Entity-Verweise verwendet, um den Entity-Verweis zu repräsentieren.
Die Werte aller Eigenschaften im Infoset berücksichtigen die Normalisierung des Zeilenendes, die in [XML], Abschnitt 2.11 "Behandlung des Zeilenendes", beschrieben ist.
Einige Informationseinheiten haben einen [base URI] oder eine Eigenschaft [declaration base URI]. Diese werden nach den Regeln in [XMLBase] verarbeitet. Beachten Sie, dass der Empfang einer Quelle Umleitungen auf der Parser-Ebene bedeuten kann (zum Beispiel in einem Entity-Resolver) oder darunter. In diesem Fall ist der Base-URI der endgültige URI, der zum Empfang der Quelle nach allen Umleitungen verwendet wird.
Der Wert dieser Eigenschaften spiegelt keinerlei URI-Ersatzmechanismus wieder, der für den Empfang einer Quelle erforderlich sein könnte, aber er kann ersetzte Zeichen enthalten, wenn diese vom Dokument angegeben sind oder durch einen Server im Fall einer Umleitung zurückgegeben werden.
In einigen Fällen (wenn zum Beispiel ein Dokument von einer Zeichenkette oder einer Pipe liest) enden die Regeln von [XMLBase] in einem Base-URI, der anwendungsabhängig ist. In diesen Fällen definiert diese Spezifikation keinen Wert für den [base URI] oder die Eigenschaft [declaration base URI].
Werden relative URIs aufgelöst, sollte die Eigenschaft [base URI] dem Wert
des Attributs xml:base
vorgezogen werden. Diese beiden Werte
können im Fall von
Synthetischen Infosets
widersprüchlich sein.
Einige Eigenschaften können den Wert unknown oder no value besitzen, was bedeutet, dass ein Eigenschaftswert unbekannt (unknown) ist oder keinen Wert (no value) hat. Diese Werte unterscheiden sich untereinander und von anderen Werten. Genauer gesagt unterscheiden sie sich von einer leeren Zeichenkette, einer leeren Zusammenstellung (orig.: set) und einer leeren Liste, von denen keiner, einfach gesagt, einen Inhalt (orig.: member) besitzt. Diese Spezifikation verwendet den Begriff Null nicht, weil er in einigen Communities bestimmte Bedeutungen hat, die hier nicht zutreffen würden.
Diese Spezifikation beschreibt das Information Set, das durch das Parsen eines XML-Dokuments entsteht. Information Sets können auf andere Weise hergestellt werden, zum Beispiel durch die Verwendung eines APIs wie das DOM oder durch die Transformation eines existierenden Information Sets.
Ein Information Set, das zu einem realen Dokument gehört, wird zwangsläufig auf verschiedene Weise widerspruchsfrei sein. Zum Beispiel ist die Eigenschaft [in-scope namespaces] eines Elements vereinbar mit der Eigenschaft [namespace attributes] des Elements und dessen Vorfahren. Dies mag nicht für ein Information Set gelten, dass auf andere Weise entstanden ist. In solch einem Fall gibt es kein XML-Dokument, das zu dem Information Set gehört. Um dieses Infoset zu serialisieren, ist eine Auflösung der Inkonsistenzen notwendig (zum Beispiel, indem Namensraum-Deklarationen ausgegeben werden, die zu den Namensräumen im Geltungsbereich gehören).
Ein Information Set kann bis zu elf verschiedene Informationseinheit-Typen enthalten, wie in den folgenden Abschnitten erklärt wird. Jede Informationseinheit hat Eigenschaften. Zur Vereinfachung der Referenzierung ist jeder Eigenschaft ein Name zugewiesen, angezeigt wird er [so]. Für jede Informationseinheit sind Verweise zu einer Definition und/oder der Syntax in der Empfehlung XML 1.0 [XML] angegeben.
XML-Definition: document (Abschnitt 2, Dokumente)
XML-Syntax: [1] Document (Abschnitt 2.1, Wohlgeformte XML-Dokumente)
Es gibt genau eine Informationseinheit für Dokumentelemente im Information Set und alle anderen Informationseinheiten sind von den Eigenschaften der Informationseinheit für Dokumentelemente zugänglich, entweder direkt oder indirekt über die Eigenschaften anderer Informationseinheiten.
Die Informationseinheit für Dokumentelemente hat die folgenden Eigenschaften:
[children] Eine geordnete Liste mit Informationseinheiten für Kindelemente in Dokumentreihenfolge. Die Liste beinhaltet genau eine Informationseinheit für Elemente. Die Liste beinhaltet ebenfalls eine Informationseinheit für Verarbeitungsanweisungen für jede Verarbeitungsanweisung außerhalb des Dokumentelements und eine Informationseinheit für Kommentare für jeden Kommentar außerhalb des Dokumentelements. Verarbeitungsanweisungen und Kommentare innerhalb der DTD sind davon ausgeschlossen. Gibt es eine Dokumenttyp-Deklaration, enthält die Liste ebenfalls eine Informationseinheit für Dokumenttyp-Deklarationen.
[document element] Die Informationseinheit für Elemente, die zum Dokumentelement gehört.
[notations] Eine unsortierte Gruppe mit Informationseinheiten für Notationen, eine für jede Notation, die in der DTD deklariert ist.
[unparsed entities] Eine unsortierte Gruppe mit Informationseinheiten für nicht analysierte Entities, eine für jedes nicht analysierte (orig. unparsed) Entity, welches in der DTD deklariert ist.
[base URI] Der Base-URI des Dokument-Entity.
[character encoding scheme] Der Name des Zeichenverschlüsselungsschemas, in dem das Dokument-Entity ausgedrückt ist.
[standalone] Die Anzeige des Standalone-Status eines
Dokuments, entweder yes
oder no
. Diese
Eigenschaft geht aus der
optionalen Standalone-Dokumentdeklaration in der XML-Deklaration am
Anfang des Dokument-Entity hervor und hat keinen Wert, wenn es keine
Standalone-Dokumentdeklaration gibt.
[version] Eine Zeichenkette, welche die XML-Version des Dokuments repräsentiert. Diese Eigenschaft wird aus der optionalen XML-Deklaration am Anfang eines Dokument-Entity abgeleitet und hat keinen Wert, wenn keine XML-Deklaration vorhanden ist.
[all declarations processed] Diese Eigenschaft ist
streng genommen kein Teil des Infosets eines Dokuments. Vielmehr ist es
eine Anzeige, ob der Prozessor die gesamte DTD gelesen hat. Der Wert ist
vom Typ Boolean. Ist der Wert false
(falsch), sind bestimmte
Eigenschaften unbekannt (angegeben in deren Beschreibungen unten).
Ist der Wert true
(wahr), sind diese Eigenschaften niemals
unbekannt.
XML-Definition: element (Abschnitt 3, Logische Strukturen)
XML-Syntax: [39] Element (Abschnitt 3, Logische Strukturen)
Es gibt eine Informationseinheit für Elemente für jedes Element, das im XML-Dokument erscheint. Eine der Informationseinheiten für Elemente ist der Wert der Eigenschaft [document element] der Informationseinheit für Dokumentelemente, die der Wurzel des Elementbaums entspricht. Alle anderen Informationseinheiten für Elemente sind rekursiv über deren [children]-Eigenschaft zugänglich.
Eine Informationseinheit für Elemente hat die folgenden Eigenschaften:
[namespace name] Der Namensraumname des Elementtyps, sofern einer existiert. Gehört das Element nicht zu einem Namensraum, ist dieser Eigenschaft kein Wert zugewiesen.
[local name] Der lokale Teil des Elementtypnamens. Dies schließt kein Namensraum-Präfix oder einen folgenden Doppelpunkt ein.
[prefix] Das Namensraum-Präfix des Elementtypnamens. Besitzt der Name kein Präfix, ist dieser Eigenschaft kein Wert zugewiesen. Beachten Sie, dass Anwendungen, die Namensräume berücksichtigen, den Namensraumnamen verwenden sollten, um Elemente zu identifizieren, nicht das Präfix.
[children] Eine geordnete Liste mit Informationseinheiten für Kindelemente in Dokumentreihenfolge. Diese Liste enthält Informationseinheiten für Elemente, Verarbeitungsanweisungen, nicht erweiterte Entity-Verweise, Zeichendaten und Kommentare, eine Einheit für jedes Element, für jede Verarbeitungsanweisung, für jeden Verweis zu einem nicht verarbeiteten externen Entity, für alle Zeichendaten und für jeden Kommentar, der direkt im aktuellen Element erscheint. Ist das Element leer, hat diese Liste keinen Inhalt (orig. members).
[attributes] Eine ungeordnete Zusammenstellung mit Informationseinheiten für Attribute, eine Einheit für jedes Attribut (angegeben oder als Voreinstellung aus der DTD) dieses Elements. Namensraum-Deklarationen erscheinen nicht in dieser Zusammenstellung. Hat das Element keine Attribute, hat diese Liste keinen Inhalt (orig. members).
[namespace attributes] Eine ungeordnete
Zusammenstellung mit
Informationseinheiten für
Attribute, eine für jede Namensraum-Deklaration (angegeben oder
als Voreinstellung aus der DTD) dieses Elements. Eine Deklaration der
Form xmlns=""
, die den voreingestellten Namensraum aufhebt,
zählt als Namensraum-Deklaration. Per Definition haben alle
Namensraumattribute (eingeschlossen die mit xmlns
benannten,
deren [prefix]-Eigenschaft keinen Wert hat) den Namensraum-URI
http://www.w3.org/2000/xmlns/
. Hat das Element keine
Namensraum-Deklarationen, hat diese Zusammenstellung keinen Inhalt.
[in-scope namespaces] Eine ungeordnete Zusammenstellung
mit Informationseinheiten für
Namensräume, eine für jeden Namensraum, der für
dieses Element
gültig ist. Diese Zusammenstellung enthält immer eine Einheit
mit dem Präfix xml
, das implizit an den Namensraumnamen
http://www.w3.org/XML/1998/namespace
gebunden ist. Es
enthält keine Einheit mit dem Präfix xmlns
(welches zur
Namenraum-Deklaration verwendet wird), weil eine Anwendung niemals auf ein
Element oder Attribut mit diesem Präfix stoßen kann. Die
Zusammenstellung wird alle Informationseinheiten für
Namensräume enthalten, die auch in der Liste der
[namespace attributes] zu finden sind, mit Ausnahme derer, die eine
Deklaration der Form xmlns=""
repräsentieren und
somit keinen
Namensraum deklarieren, sondern den voreingestellten Namensraum aufheben.
Wenn die Präfixe der qualifizierten Namen aufgelöst werden,
sollte diese
Eigenschaft vorrangig zur Eigenschaft [namespace attributes] verwendet
werden. Sie könnte im Fall von
Synthetischen Infosets
widersprüchlich sein.
[base URI] Der Base-URI des Elements.
[parent] Die Informationseinheit für Dokumentelemente oder Elemente, die diese Informationseinheit in ihrer [children]-Eigenschaft enthält.
XML-Definition: attribute (Abschnitt 3.1, Start-Tags, End-Tags und Leeres-Element-Tags)
XML-Syntax: [41] Attribute (Abschnitt 3.1, Start-Tags, End-Tags und Leeres-Element-Tags)
Es gibt eine Informationseinheit für Attribute für jedes Attribut (angegeben oder voreingestellt) eines jeden Elements in einem Dokument, einschließlich der Attribute, die eine Namensraum-Deklaration darstellen. Letztere erscheinen jedoch als Teil der Eigenschaft [namespace attributes] eines Elements und nicht als Teil der [attribute]-Eigenschaft eines Elements.
In der DTD deklarierte Attribute, die keinen voreingestellten Wert besitzen und nicht im Start-Tag des Elements definiert sind, werden nicht von Informationseinheiten für Attribute repräsentiert.
Eine Informationseinheit für Attribute hat die folgenden Eigenschaften:
[namespace name] Der Namensraumname des Attributs, sofern einer existiert. Ansonsten ist dieser Eigenschaft kein Wert zugewiesen.
[local name] Der lokale Teil eines Attributnamen. Dies schließt kein Namensraum-Präfix oder einen folgenden Doppelpunkt ein.
[prefix] Das Namensraum-Präfix eines Attributnamens. Besitzt der Name kein Präfix, ist dieser Eigenschaft kein Wert zugewiesen. Beachten Sie, dass Anwendungen, die Namensräume berücksichtigen, den Namensraumnamen verwenden sollten, um Elemente zu identifizieren, nicht das Präfix.
[normalized value] Der normalisierte Attributwert (siehe 3.3.3 Normalisierung von Attributwerten [XML]).
[specified] Diese Eigenschaft zeigt an, ob dieses Attribut direkt im Start-Tag seines Elements angegeben wurde oder über eine Voreinstellung in der DTD.
[attribute type] Eine Anzeige des Typs, der für dieses
Attribut in der DTD deklariert ist. Zugelassene Werte sind ID, IDREF,
IDREFS, ENTITY, ENTITIES, NMTOKEN, NMTOKENS, NOTATION, CDATA und
ENUMERATION. Ist das Attribut nicht deklariert, ist dieser Eigenschaft
kein Wert zugewiesen. Wurde keine Deklaration gelesen und ist aber die
Eigenschaft [all declarations processed] der Informationseinheit
für Dokumentelemente
false
(falsch) (und existiert eventuell eine ungelesene
Deklaration), dann ist der Wert dieser Eigenschaft unknown
(unbekannt). Anwendungen sollten no value
und
unknown
als äquivalent zu einem CDATA-Wert behandeln.
[references] Ist der Attributtyp ID, NMTOKEN,
NMTOKENS, CDATA oder ENUMERATION, hat diese Eigenschaft keinen Wert. Ist
der Attributtyp unbekannt, ist der Wert dieser Eigenschaft
unknown
.
Ansonsten (das ist, wenn der Attributtyp IDREF, IDREFS, ENTITY, ENTITIES
oder NOTATION ist) ist der Wert dieser Eigenschaft eine geordnete Liste
der Informationseinheiten für
Elemente,
nicht verarbeitete Entities
oder Notationen, auf die im
Attributwert in der Reihenfolge, in der sie erscheinen, Bezug genommen
wird. In dem Fall, dass der Attributwert syntaktisch ungültig
ist, ist dieser Eigenschaft kein Wert zugewiesen. Ist der Typ IDREF oder
IDREFS und erscheint eine dieser IDs
nicht als Wert eines ID-Attributs im Dokument, oder ist der Typ ENTITY,
ENTITIES oder NOTATION und wurde keine Deklaration für die Entities
oder die Notation gelesen, dann ist dieser Eigenschaft kein Wert oder der
Wert unknown
(unbekannt) zugewiesen, abhängig davon,
ob die Eigenschaft [all declarations processed] der Informationseinheit
für Dokumentelemente
true
(wahr) oder false
(falsch) ist. Ist der
Typ IDREF oder IDREFS und erscheint irgendeine dieser IDs als Wert von
mehr als einem ID-Attribut im Dokument, dann ist dieser Eigenschaft
kein Wert zugewiesen.
[owner element] Die Informationseinheit für Elemente, welche diese Informationseinheit in ihrer [attributes]-Eigenschaft enthält.
XML-Definition: processing instruction (Abschnitt 2.6, Verarbeitungsanweisungen)
XML-Syntax: [16] PI (Abschnitt 2.6, Verarbeitungsanweisungen)
Es gibt eine Informationseinheit für Verarbeitungsanweisungen für jede Verarbeitungsanweisung im Dokument. Die XML-Deklaration und Textdeklarationen für externe analysierte (orig. parsed) Entities werden nicht als Verarbeitungsanweisung angesehen.
Eine Informationseinheit für Verarbeitungsanweisungen hat die folgenden Eigenschaften:
[target] Eine Zeichenkette, die das Ziel der Verarbeitungsanweisung repräsentiert (ein XML-Name).
[content] Eine Zeichenkette, die den Inhalt der Verarbeitungsanweisung repräsentiert, ausgeschlossen das Ziel und alle Leerzeichen, die direkt darauf folgen. Gibt es einen solchen Inhalt nicht, ist der Wert dieser Eigenschaft eine leere Zeichenkette.
[base URI] Der Base-URI der PI (Verarbeitungsanweisung).
Beachten Sie: Wird ein
Infoset als XML-Dokument serialisiert, wird es nicht möglich sein, den
Base-URI einer PI zu bewahren, die ursprünglich auf der höchsten Ebene
eines externen Entities erschien, weil es keine Syntax für PIs gibt wie
das xml:base
-Attribut für Elemente.
[notation] Die vom Ziel benannte
Informationseinheit für
Notationen. Gibt es keine
Deklaration für eine Notation mit diesem Namen, ist dieser Eigenschaft
kein Wert zugewiesen. Wurde keine Deklaration gelesen, aber ist die [all
declarations processed]-Eigenschaft der Informationseinheit für das
Dokumentelement
false
(und existiert eventuell eine ungelesene Deklaration),
dann ist der Wert der Eigenschaft unknown
.
[parent] Die Informationseinheit für Dokumentelemente, Elemente oder Dokumenttyp-Deklarartionen, die diese Informationseinheit in ihrer [children]-Eigenschaft enthält.
XML-Definition: Abschnitt 4.4.3, Inkludiert, falls validierend
Eine Informationseinheit für nicht erweiterte Entity-Verweise dient als Platzhalter, mit der ein XML-Prozessor anzeigen kann, dass er ein externes verarbeitetes Entity nicht erweitert hat. Es gibt so eine Informationseinheit für jeden nicht erweiterten Verweis zu einem externen allgemeinen Entity innerhalb des Inhalts eines Elements. Ein validierender XML-Prozessor oder ein nicht validierender XML-Prozessor, der alle externen allgemeinen Entities liest, wird niemals Informationseinheiten für nicht erweiterte Entity-Verweise für ein gültiges Dokument erzeugen.
Eine Informationseinheit für nicht erweiterte Entity-Verweise hat die folgenden Eigenschaften:
[name] Der Name des referenzierten Entities.
[system identifier] Der System Identifier des Entities,
wie er in der Deklaration des Entities erscheint, ohne irgendeinen
zusätzlichen URI-Ersatzmechanismus, der vom Prozessor angewandt wurde.
Gibt es keine Deklaration für das Entity, ist dieser Eigenschaft
kein Wert zugewiesen. Wurde keine Deklaration gelesen, ist aber die Eigenschaft
[all declarations processed] der Informationseinheit für
Dokumentelemente false
(falsch) (und existiert eventuell eine
ungelesene Deklaration), dann ist der Wert dieser Eigenschaft
unknown
(unbekannt).
[public identifier] Der Public Identifier des Entities,
normalisiert wie in 4.2.2
External Entities [XML] beschrieben. Gibt es keine
Deklaration für das Entity oder schließt die Deklaration
keinen Public Identifier ein, ist dieser Eigenschaft kein Wert zugewiesen.
Wurde keine Deklaration gelesen,
ist aber die Eigenschaft [all declarations processed] der
Informationseinheit für Dokumentelemente false
(falsch) (und existiert eventuell eine ungelesene Deklaration), dann ist
der Wert dieser Eigenschaft unknown
(unbekannt).
[declaration base URI] Der Base-URI, zu dem der System
Identifier aufgelöst werden sollte (z.B. der Base-URI der Quelle
innerhalb welcher die Entity-Deklaration erscheint). Diese Eigenschaft
ist unknown
oder hat keinen Wert, wenn die gleichen
Umstände vorliegen wie bei der Eigenschaft
[system identifier].
[parent] Die Informationseinheit für Elemente, die diese Informationseinheit in ihrer [children]-Eigenschaft enthält.
XML-Syntax: [2] Char (Abschnitt 2.2, Zeichen)
Es gibt eine Informationseinheit für Zeichendaten für alle Zeichendaten, die im Dokument erscheinen, ob als Literal, als Zeichenverweis oder innerhalb eines CDATA-Bereichs.
Jedes Zeichen ist logisch betrachtet eine allein stehende Informationseinheit. Es steht XML-Anwendungen jedoch frei, Zeichen in größeren Gruppen zusammenzufassen, wenn dies notwendig oder wünschenswert ist.
Eine Informationseinheit für Zeichendaten hat die folgenden Eigenschaften:
[character code] Der ISO-10646-Zeichencode des Zeichens (im Bereich 0 bis #x10FFFF, obwohl nicht jeder Wert in diesem Bereich ein erlaubter XML-Zeichencode ist).
[element content whitespace] Ein Boolescher Wert, der
anzeigt, ob das im Elementinhalt auftauchende Zeichen ein Leerraum ist
(siehe [XML], 2.10 "Behandlung von Leerraum").
Beachten Sie, dass von validierenden XML-Prozessoren durch die
XML 1.0-Spezifikation gefordert wird, diese Information anzugeben. Gibt
es keine Deklaration für das beinhaltende Element, enthält diese
Eigenschaft keinen Wert für Leerraumzeichen. Wurde keine Deklaration
gelesen, ist aber die Eigenschaft [all declarations processed] der
Informationseinheit für Dokumentelemente false
(falsch)
(und existiert
eventuell eine ungelesene Deklaration), dann ist der Wert dieser
Eigenschaft für Leerraumzeichen unknown
(unbekannt).
Er ist immer
false
für Zeichen, die kein Leerraum sind.
[parent] Die Informationseinheit für Elemente, die diese Informationseinheit in ihrer [children]-Eigenschaft enthält.
XML-Definition: comment (Abschnitt 2.5, Kommentare)
XML-Syntax: [15] Comment (Abschnitt 2.5, Kommentare)
Es gibt eine Informationseinheit für Kommentare für jeden XML-Kommentar im originalen Dokument, außer für die Kommentare, die in der DTD erscheinen (welche nicht repräsentiert werden).
Eine Informationseinheit für Kommentare hat die folgenden Eigenschaften:
[content] Eine Zeichenkette, die den Inhalt des Kommentars repräsentiert.
[parent] Die Informationseinheit für Dokumentelemente oder Elemente, die diese Informationseinheit in ihrer [children]-Eigenschaft enthält.
XML-Definition: document type declaration (Abschnitt 2.8, Prolog und Dokumenttyp-Deklaration)
XML-Syntax: [28] doctypedecl (Abschnitt 2.8, Prolog und Dokumenttyp-Deklaration)
Hat das XML-Dokument eine Dokumenttyp-Deklaration, dann enthält dieses Information Set genau eine Informationseinheit für Dokumenttyp-Deklarationen. Beachten Sie, dass Entities und Notationen als Eigenschaften der Informationseinheit für Dokument-Elemente angegeben werden, nicht als Eigenschaften der Informationseinheit für Dokumenttyp-Deklarationen.
Eine Informationseinheit für Dokumenttyp-Deklarationen hat die folgenden Eigenschaften:
[system identifier] Der System Identifier des externen Subset, wie er in der DOCTYPE-Deklaration erscheint, ohne irgendeinen zusätzlichen URI-Ersatzmechanismus, der vom Prozessor angewandt wurde. Gibt es kein externes Subset, ist dieser Eigenschaft kein Wert zugewiesen.
[public identifier] Der Public Identifier des externen Subsets (der externen Teilmenge), normalisiert wie in 4.2.2 External Entities [XML] beschrieben. Gibt es kein externes Subset oder hat es keinen Public Identifier, ist dieser Eigenschaft kein Wert zugewiesen.
[children] Eine geordnete Liste mit Informationseinheiten für Verarbeitungsanweisungen, welche Verarbeitungsanweisungen, die in der DTD erscheinen, in der originalen Dokumentreihenfolge repräsentieren. Informationseinheiten des internen DTD-Subsets erscheinen vor denen im externen Subset.
[parent] Die Informationseinheit für Dokumentelemente.
XML-Definition: entity (Abschnitt 4, Physische Strukturen)
XML-Syntax: [71] GEDecl (Abschnitt 4.2, Entities)
Es gibt eine Informationseinheit für nicht analysierte Entities für jedes nicht analysierte allgemeine Entity, das in der DTD deklariert ist.
Eine Informationseinheit für nicht analysierte Entities hat die folgenden Eigenschaften:
[name] Der Name des Entities.
[system identifier] Der System Identifier des Entities, wie er in der Deklaration des Entities erscheint, ohne irgendeinen zusätzlichen URI-Ersatzmechanismus, der vom Prozessor angewandt wurde.
[public identifier] Der Public Identifier des Entities, normalisiert wie in 4.2.2 External Entities [XML] beschrieben. Hat das Entity keinen Public Identifier, ist dieser Eigenschaft kein Wert zugeordnet.
[declaration base URI] Der Base-URI, zu dem der System Identifier relativ aufgelöst werden sollte (z.B. der Base-URI der Quelle, innerhalb der die Entity-Deklaration erscheint).
[notation name] Der Notationsname, der mit dem Entity verbunden ist.
[notation] Die
Informationseinheit für
Notationen, benannt nach dem Notationsnamen. Gibt es keine
Deklaration für eine Notation mit diesem
Namen, ist dieser Eigenschaft kein Wert zugewiesen. Wurde keine Deklaration
gelesen, ist aber die Eigenschaft [all declarations processed] der
Informationseinheit für Dokumentelemente false
(falsch)
(und existiert
eventuell eine ungelesene Deklaration), dann ist der Wert dieser
Eigenschaft unknown
(unbekannt).
XML-Definition: notation (Abschnitt 4.7, Notationen)
XML-Syntax: [82] NotationDecl (Abschnitt 4.7, Notationen)
Es gibt eine Informationseinheit für Notationen für jede Notation, die in der DTD deklariert ist.
Eine Informationseinheit für Notationen hat die folgenden Eigenschaften:
[name] Der Name der Notation.
[system identifier] Der System Identifier der Notation, wie er in der Deklaration der Notation erscheint, ohne irgendeinen zusätzlichen URI-Ersatzmechanismus, der vom Prozessor angewandt wurde. Wurde kein System Identifier angegeben, ist dieser Eigenschaft kein Wert zugeordnet.
[public identifier] Der Public Identifier der Notation, normalisiert wie in 4.2.2 External Entities [XML] beschrieben. Hat die Notation keinen Public Identifier, ist dieser Eigenschaft kein Wert zugewiesen.
[declaration base URI] Der Base-URI, zu dem der System Identifier relativ aufgelöst werden sollte (z. B. der Base-URI der Quelle, innerhalb der die Notation erscheint).
Jedes Element im Dokument hat eine Informationseinheit für Namensräume für jeden Namensraum, der für dieses Element Gültigkeit besitzt.
Eine Informationseinheit für Namensräume hat die folgenden Eigenschaften:
[prefix] Das Präfix, dessen Bindung diese
Informationseinheit
beschreibt. Syntaktisch ist das der Teil des Attributnamens, der dem
Präfix xmlns:
folgt. Ist der Attributname einfach
xmlns
, so dass die Deklaration dem voreingestellten
Namensraum entspricht, ist dieser Eigenschaft kein Wert zugewiesen.
[namespace name] Der Namensraumname, an den das Präfix gebunden ist.
Weil der Zweck des Information Sets die Bereitstellung von Definitionen ist, ist die Konformität vielmehr eine Sache der Spezifikationen, die diese Definitionen verwenden, als eine Sache der Implementationen.
Spezifikationen, die sich auf das Infoset beziehen, müssen:
Die Informationseinheiten und Eigenschaften anzeigen, die nötig sind, um die Spezifikation zu implementieren. (Dies erfordert indirekt Konformitätsanforderungen an die Prozessoren, die verwendet werden, um die Spezifikation zu implementieren.)
Angeben, wie andere Informationseinheiten und Eigenschaften behandelt werden (zum Beispiel könnten sie unverändert weitergegeben werden).
Jede Information anmerken, die von einem XML-Dokument gefordert wird und nicht von Infoset definiert ist.
Jeden Unterschied in der Verwendung von Begriffen anmerken, die von Infoset definiert sind (dies sollte vermieden werden).
Erlaubt eine Spezifikation die Konstruktion eines Infosets, das Inkonsistenzen aufweist, wie oben unter Synthetische Infosets beschrieben, könnte sie beschreiben, wie diese Inkonsistenzen aufzulösen sind, und sollte so verfahren, wenn sie für die Serialisierung (Anordnung) des Infosets Vorsorge trifft.
Obwohl sich die Empfehlung XML 1.0 [XML] in erster Linie mit der XML-Syntax beschäftigt, beinhaltet sie ebenfalls einige Rückmeldungsanforderungen für XML-Prozessoren.
Die Anforderungen für Rückmeldungen beziehen Fehler ein, die nicht im Rahmen dieser Spezifikation liegen. Alle Anforderungen von XML 1.0 für Rückmeldungen über Dokumentinformationen wurden in die Spezifikation XML Information Set integriert, Zahlen in Klammern beziehen sich auf die Abschnitte in der XML-Empfehlung:
Ein XML-Prozessor muss immer alle Zeichen in einem Dokument, die keine Bezeichner (orig. Markup) sind, an die Anwendung liefern (2.10).
Ein validierender XML-Prozessor muss die Anwendung darüber in Kenntnis setzen, welche der Zeichendaten in einem Dokument Leerraum sind, der in Elementinhalten auftaucht.
Ein XML-Prozessor muss Line-Ends (Wagenrücklauf) zu LF (Zeilenvorschub) normalisieren, bevor die Daten an die Anwendung weitergereicht werden (2.11).
Ein XML-Prozessor muss den Wert von Attributen in Übereinstimmung mit den Regeln in Abschnitt 3.3.3 (Anm. d. Übers.: der XML-Spezifikation) normalisieren, bevor er sie zur Anwendung weiterreicht.
Ein XML-Prozessor muss die Namen und externen Identifier (System Identifier, Public Identifier oder beide) von deklarierten Notationen an die Anwendung weiterreichen (4.7).
Erscheint der Name eines nicht analysierten Entities als expliziter oder voreingestellter Wert eines Attributs ENTITY oder ENTITIES, muss ein XML-Prozessor die Namen, den System Identifier und (sofern vorhanden) den Public Identifier sowohl des Entities als auch der Notation an die Anwendung weiterreichen (4.6, 4.7).
Ein XML-Prozessor muss Verarbeitungsanweisungen an die Anwendung weiterreichen (2.6).
Ein XML-Prozessor (zwangsläufig ein nicht validierender), der den Ersatztext eines externen analysierten Entities nicht anstelle des Entity-Verweises inkludiert, muss die Anwendung davon in Kenntnis setzen, dass er das Entity erkannt, aber nicht gelesen hat (4.4.3).
Ein validierender XML-Prozessor muss den Ersatztext eines Entities anstelle des Entity-Verweises inkludieren (5.2).
Ein XML-Prozessor muss den voreingestellten Wert eines Attributs liefern, das in der DTD für einen gegebenen Elementtyp deklariert ist, aber nicht im Start-Tag des Elements erscheint (3.3.2).
Ziehen Sie das folgende XML-Beispieldokument in Betracht:
<?xml version="1.0"?> <msg:message doc:date="19990421" xmlns:doc="http://doc.example.org/namespaces/doc" xmlns:msg="http://message.example.org/" >Phone home!</msg:message>
Das Information Set für dieses XML-Dokument enthält die folgenden Informationseinheiten:
Eine Informationseinheit für
Elemente mit dem
Namensraumnamen "http://message.example.org/
", dem lokalem
Teil "message
" und dem Präfix "msg
".
Eine Informationseinheit für
Attribute mit
dem Namensraumnamen "http://doc.example.org/namespaces/doc
",
dem lokalen Teil "date
" und dem Präfix "doc
"
und dem normalisierten Wert "19990421
".
Drei Informationseinheiten
für Namensräume für
den Namensraum http://www.w3.org/XML/1998/
und die
Namensräume http://doc.example.org/namespaces/doc
und
http://message.example.org/
.
Zwei Informationseinheiten für Attribute für die Namensraumattribute.
Elf Informationseinheiten für Zeichendaten für die vorhandenen Zeichendaten.
Die folgenden Informationen werden nicht von der aktuellen Version des XML Information Set repräsentiert (diese Liste erhebt keinen Anspruch auf Vollständigkeit):
Die Inhaltsmodelle von Elementen, abgeleitet von ELEMENT-Deklarationen in der DTD.
Die Gruppierung und Reihenfolge von Attributdeklarationen in ATTLIST-Deklarationen.
Der Dokumenttypname.
Leerraum außerhalb des Dokumentelements.
Leerraum, der direkt dem Zielnamen einer PI (Verarbeitungsanweisung) folgt.
Ob Zeichen durch Zeichenreferenzen repräsentiert werden.
Der Unterschied zwischen den beiden Formen eines leeren Elements:
<foo/>
und <foo></foo>
.
Leerraum innerhalb von Start-Tags (anderer Leerraum als bedeutungstragender in Attributwerten) und End-Tags.
Der Unterschied zwischen den Zeichen CR, CR-LF und LF für das Zeilenende.
Die Reihenfolge von Attributen innerhalb eines Start-Tags.
Die Reihenfolge von Deklarationen in der DTD.
Die Grenzen von bedingten Abschnitten in der DTD.
Die Grenzen von Parameter-Entities in der DTD.
Kommentare in der DTD.
Der Ort von Deklarationen (ob im internen oder externen Subset oder in Parameter-Entities).
Alle ignorierten Deklarationen, eingeschlossen jene in einem bedingten Bereich IGNORE, sowie Entity- und Attributdeklarationen, die ignoriert werden, weil sie durch vorausgehende Deklarationen überschrieben werden.
Die Art der Anführungsstriche (einfach oder doppelt), um Attributwerte anzugeben.
Die Grenzen von allgemeinen analysierten Entities.
Die Grenzen der Bereiche, die als CDATA ausgewiesen sind.
Der voreingestellte Wert von Attributen, die in der DTD deklariert sind.
Siehe [RDF Schema für XML Information Set] für eine formale Charakterisierung des Infosets.