Document Object Model (DOM) Level 3 XPath Specification

Version 1.0

Übersetzung ins Deutsche

14.August 2004

Das ist die deutsche Übersetzung der "W3C Working Group Note" mit dem Titel "Document Object Model (DOM) Level 3 XPath Specification", Version 1.0 vom 26.Februar 2004. Beachten Sie bitte, dass dieses Dokument kein normatives Dokument ist und Übersetzungsfehler beinhalten kann. Es ersetzt das Originaldokument in keiner Weise. Das Originaldokument ist zu finden unter http://www.w3.org/TR/2004/NOTE-DOM-Level-3-XPath-20040226

Falls Sie Übersetzungsfehler sehen, bestimmte Passagen anders übersetzen würden oder Verbesserungsvorschläge haben, dann teilen Sie die Details doch bitte dem Übersetzer mit: Standard(at-Zeichen)wbock-privat.de.

Diese Version der Übersetzung:
http://www.wbock-privat.de/start/DOM3-XPath-20040814.html
Die aktuelle Version:
http://www.wbock-privat.de/start/DOM3-XPath.html
Die vorherige Version der Übersetzung:
http://www.wbock-privat.de/start/DOM3-XPath-20031210.html
Der Übersetzer:
Wolfgang Bock standard(at-zeichen)wbock-privat.de

Dieses Dokument ist urheberrechtlich geschützt, Copyright © 2004 W3C® (MIT, ERCIM, Keio), Alle Rechte vorbehalten. Die Rechte an der Übersetzung liegen beim Übersetzer, Copyright © 2004 Wolfgang Bock

Bemerkungen zur Übersetzung

Diese Version wurde so wortgetreu wie möglich übersetzt.
Beim Übersetzen von Namen und Bezeichnern wurde folgendes unterschieden:

Bezeichner in syntaktischem Zusammenhang
Bezeichner, die in irgendeiner Form direkt zu notieren sind, wurden original belassen. Beispiel:
XPathEvaluator : XPathEvaluator
Fachbegriffe
Fachbegriffe wurden übersetzt. An einigen Stellen wurde in geschweiften Klammern {} der originale Fachbegriff nachgestellt. Beispiel:
Node : Knoten {Node}
andere Begriffe
Andere Begriffe wurden einfach übersetzt. Beispiel:
node type : Knotentyp

Weitere Anmerkungen des Übersetzers sind gekennzeichnet (Anm.d.Ü.) und mit dieser Hintergrundfarbe versehen.
Eine neue Version der Übersetzung ist mit dem Erscheinen einer neuen Version des Originaldokuments geplant.
Falls zu späterer Zeit Korrekturen am Text durchgeführt werden, so werden an dieser Stelle entsprechende Hinweise eingefügt:

Ende der Hinweise.

W3C

Document Object Model (DOM) Level 3 XPath Specification

Version 1.0

W3C Working Group Note 26.Februar 2004

Diese Version:
http://www.w3.org/TR/2004/NOTE-DOM-Level-3-XPath-20040226
Letzte Version:
http://www.w3.org/TR/DOM-Level-3-XPath
Vorhergehende Version:
http://www.w3.org/TR/2003/CR-DOM-Level-3-XPath-20030331
Herausgeber:
Ray Whitmer, Netscape/AOL, eingeladener Experte

Dieses Dokument ist auch in folgenden nichtnormativen Formaten verfügbar: XML-Datei, Nur Text, PostScript-Datei, PDF-Datei, als eine durchgängige HTML-Datei, and ZIP-Datei.

(Anm.d.Ü.): Trifft nicht auf die Übersetzung zu. Die Übersetzung liegt ausschließlich als eine durchgängige HTML-Datei (single HTML file) vor.


Zusammenfassung

Diese Spezifikation definiert "Document Object Model Level 3 XPath". Sie stellt einfache Funktionalitäten zum Zugriff auf den DOM-Baum unter Verwendung von [XPath 1.0] bereit.

Status dieses Dokuments

Dieser Abschnitt beschreibt den Status des Dokuments zum Zeitpunkt seiner Veröffentlichung. Andere Dokumente können dieses Dokument ersetzen. Eine Liste der aktuellen W3C-Publikationen und die letzte Revision dieses technischen Berichts kann gefunden werden im W3C technical reports index unter http://www.w3.org/TR/.

Dieses Dokument ist eine Working Group Note von "DOM Level 3 XPath" und basiert auf den eingegangenen Rückmeldungen während des Last-Call-Zeitraums. Die Teilnehmer {paticipants} der W3C DOM Arbeitsgruppe erwarten nicht, zwei interoperable Implementierungen dieses Moduls mit der gleichen Bindung {using the same binding} zur Verfügung zu stellen. Rückmeldungen über Implementierungen sind immer willkommen und sollten zur öffentlichen Mailing-Liste www-dom@w3.org (public archive) gesandt werden. Andere W3C-Arbeitsgruppen können die Arbeit fortsetzen und Implementierungen dieses Dokumentes zur Verfügung stellen.

Einzelpersonen oder Organisationen werden ebenfalls gebeten, eine Nachricht an die öffentliche Mailing-Liste zu senden, wenn sie eine Implementierung dieses Moduls beabsichtigen.

Die Veröffentlichung als Working Group Note impliziert keine Bestätigung durch die W3C-Mitgliedschaft. Dies ist ein Entwurfsdokument, das aktualisiert, ersetzt werden oder durch andere Dokumente jederzeit veralten kann.

Dieses Dokument wurde erstellt als Teil der W3C-DOM-Aktivitäten. Die Autoren dieses Dokuments sind die Mitglieder der DOM-Arbeitsgruppe.

Ein Implementierungsbericht ist ebenfalls vorhanden.

Patentoffenlegungen {patent disclosures}, die relevant für diese Spezifikation sind, können auf der Seite für Patentoffenlegungen {patent disclosure page} gefunden werden.

Inhaltsverzeichnis

26.Februar 2004

Erweitertes Inhaltsverzeichnis

26.Februar 2004

W3C-Copyright-Hinweise und -Lizenzen

Copyright © 2004 World Wide Web Consortium, (Massachusetts Institute of Technology, European Research Consortium for Informatics and Mathematics, Keio University). Alle Rechte vorbehalten.

Dieses Dokument ist veröffentlicht unter W3C® -Dokument-Copyright-Hinweis und -Lizenz {W3C® Document Copyright Notice and License}. Die Bindungen innerhalb dieses Dokuments sind veröffentlicht unter W3C® -Software-Copyright-Hinweis und -Lizenz {W3C® Software Copyright Notice and License}. Die Softwarelizenz erfordert "Notizen über beliebige Änderungen und Modifizierungen an den W3C-Dateien, einschließlich des Datums der Veränderungen." In dieser Konsequenz müssen modifizierte Versionen der DOM-Bindungen, die nicht konform zum W3C-Standard sind, dokumentiert werden; im Fall der IDL-Definitionen kann das Pragma-Präfix nicht mehr 'w3c.org' lauten; im Fall der Java-Sprachbindung können die Package-Namen nicht mehr im 'org.w3c'-Package enthalten sein.


Hinweis: Dieser Abschnitt ist eine Kopie von W3C® -Dokument-Hinweis und -Lizenz {W3C® Document Notice and License} und kann gefunden werden unter http://www.w3.org/Consortium/Legal/2002/copyright-documents-20021231.

Copyright © 2004 World Wide Web Consortium, (Massachusetts Institute of Technology, European Research Consortium for Informatics and Mathematics, Keio University). Alle Rechte vorbehalten.

http://www.w3.org/Consortium/Legal/2002/copyright-documents-20021231

Öffentliche Dokumente auf der W3C-Site werden von den Copyright-Inhabern bereitgestellt unter der folgenden Lizenz. Zum Verwenden und/oder Kopieren des W3C-Dokuments mit dem diese Aussage verbunden ist, pflichtest Du (der Lizenznehmer) bei, dass Du die folgenden Begriffe und Bedingungen gelesen, verstanden und darin eingewilligt hast:

Das Recht zum Kopieren und Verteilen des Inhalts dieses Dokuments, oder des W3C-Dokuments, mit dem diese Aussage verbunden ist, in irgendeinem Medium für irgendeinen Zweck und ohne Gebühren oder Abgaben wird hiermit bewilligt, vorausgesetzt dass Du das Folgende in ALLE Kopien dieses Dokuments oder Teilen davon einfügst, die Du verwendest:

  1. Ein Link oder URL zum originalen W3C-Dokument.
  2. Den bereits vorhandenen Copyright-Hinweis des originalen Autors, oder, wenn es ihn nicht gibt, einen Hinweis (Hypertext wird bevorzugt, aber eine Textdarstellung ist erlaubt) der Form: "Copyright © [$date-of-document] World Wide Web Consortium, (Massachusetts Institute of Technology, European Research Consortium for Informatics and Mathematics, Keio University). Alle Rechte vorbehalten. http://www.w3.org/Consortium/Legal/2002/copyright-documents-20021231"
  3. Wenn es ihn gibt, den STATUS des W3C-Dokuments.

Wenn es der Platz erlaubt, sollte der volle Text dieser NOTIZ {NOTICE} mit eingeschlossen sein. Wir verlangen, dass Autorenverweise enthalten sein müssen, und zwar in jeder Software, jedem Dokument oder anderen Teilen oder Produkten, die Du gemäß der Implementierung des Inhalts von diesem Dokument oder Teilen davon erzeugst.

Es wird kein Recht gewährt Änderungen oder Ableitungen von W3C-Dokumenten gemäß dieser Lizenz zu erzeugen. Wenn jedoch zusätzliche Anforderungen (dokumentiert in den Copyright FAQ) erfüllt sind, so wird das Recht zum Erzeugen von Änderungen oder Ableitungen manchmal einzelnen Personen gewährt, die in diese Anforderungen einwilligen.

DIESES DOKUMENT WIRD ZUR VERFÜGUNG GESTELLT, "WIE ES IST", UND DIE COPYRIGHT-INHABER MACHEN KEINE ANGABEN ODER GEBEN GARANTIEN, WEDER AUSDRÜCKLICH NOCH IMPLIZIT, EINSCHLIESSLICH UND NICHT BEGRENZT AUF GARANTIEN ZUR MARKTREIFE, DER EIGNUNG ZU EINEM BESTIMMTEN ZWECK, NICHT-RECHTSVERLETZUNG ODER ANKÜNDIGUNG {TITEL}; DASS DER INHALT DES DOKUMENTES ZU IRGENDEINEM ZWECK VERWENDBAR IST; NOCH DASS DIE IMPLEMENTIERUNG SOLCHEN INHALTS KEINE PATENTE, COPYRIGHTS, EINGETRAGENE WARENZEICHEN ODER ANDERE RECHTE DRITTER VERLETZT.

DIE COPYRIGHT-INHABER SIND NICHT FÜR IRGENDWELCHE DIREKTEN, INDIREKTEN, SPEZIELLEN ODER FOLGESCHÄDEN VERANTWORTLICH, DIE AUS IRGENDEINEM GEBRAUCH DES DOKUMENTS ODER DER LEISTUNG ODER IMPLEMENTIERUNG DES INHALTS HERAUS DAVON ENTSTEHEN.

Der Name und die eingetragenen Warenzeichen der Copyright-Inhaber kann man NICHT in Werbung oder Annoncen zu diesem Dokument oder zu seinem Inhalt verwenden ohne besondere vorher gegebene schriftliche Genehmigung. Die Ankündigung zum {title to} Copyright in diesem Dokument verbleibt immer bei den Copyright-Inhabern.


Hinweis: Dieser Abschnitt ist eine Kopie von W3C® -Software-Copyright-Hinweis und -Lizenz {W3C® Software Copyright Notice and License} und kann gefunden werden unter http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231

Copyright © 2004 World Wide Web Consortium, (Massachusetts Institute of Technology, European Research Consortium for Informatics and Mathematics, Keio University). Alle Rechte vorbehalten.

http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231

Diese Arbeit (und die enthaltene Software, Dokumentationen wie READMEs und andere anhängende Einträge) wird von den Copyright-Inhabern unter folgender Lizenz bereitgestellt. Bei Erhalt, Verwendung und/oder dem Kopieren dieser Arbeit pflichtest Du (der Lizenznehmer) bei, dass Du die folgenden Begriffe und Bedingungen gelesen, verstanden und darin eingewilligt hast.

Das Recht zum Kopieren, Verändern und Verteilen dieser Software und seiner Dokumentation, mit oder ohne Veränderungen für irgendeinen Zweck und ohne Gebühren oder Abgaben wird hiermit bewilligt, vorausgesetzt, dass Du das Folgende in ALLE Kopien der Software und Dokumentation oder Teilen davon einfügst, einschließlich der Veränderungen:

  1. Den vollständigen Text dieser NOTIZ {NOTICE} in sichtbarer Position für den Anwender der neu verteilten oder abgeleiteten Arbeit.
  2. Alle bereits vorhandenen Verzichte {intellectual property disclaimers}, Hinweise oder Begriffe und Bedingungen. Gibt es das nicht, dann sollte die W3C® Short Software Notice eingeschlossen werden (Hypertext wird bevorzugt, aber eine Textdarstellung ist erlaubt) inmitten des Körpers oder jedes neu verteilten oder abgeleiteten Codes.
  3. Hinweise über irgendwelche Änderungen oder Modifizierungen der Dateien, einschließlich Datumsänderungen sind zu machen {were made}. (Wir empfehlen Dir, URIs von der Quelle {location} bereitzustellen, von der der Code abgeleitet wird.)

DIESE SOFTWARE UND DOKUMENTATION WIRD ZUR VERFÜGUNG GESTELLT, "WIE SIE IST", UND DIE COPYRIGHT-INHABER MACHEN KEINE ANGABEN ODER GEBEN GARANTIEN, WEDER AUSDRÜCKLICH NOCH IMPLIZIT, EINSCHLIESSLICH UND NICHT BEGRENZT AUF GARANTIEN ZUR MARKTREIFE, DER EIGNUNG ZU EINEM BESTIMMTEN ZWECK, NOCH DASS DIE VERWENDUNG VON SOFTWARE ODER DOKUMENTATION KEINE PATENTE, COPYRIGHTS, EINGETRAGENE WARENZEICHEN ODER ANDERE RECHTE DRITTER VERLETZT.

DIE COPYRIGHT-INHABER SIND NICHT FÜR IRGENDWELCHE DIREKTEN, INDIREKTEN, SPEZIELLEN ODER FOLGESCHÄDEN VERANTWORTLICH, DIE AUS IRGENDEINEM GEBRAUCH VON SOFTWARE ODER DOKUMENTATION ENTSTEHEN.

Der Name und die eingetragenen Warenzeichen der Copyright-Inhaber kann man NICHT in Werbung oder Annoncen zu dieser Software verwenden ohne besondere vorher gegebene schriftliche Genehmigung. Die Ankündigung zum Copyright in dieser Software und der damit verbundenen Dokumentation verbleibt immer bei den Copyright-Inhabern.

Hinweis: Dieser Abschnitt ist eine Kopie der W3C® -Kurzfassung Software-Hinweis {W3C® Short Software Notice} und kann gefunden werden unter http://www.w3.org/Consortium/Legal/2002/copyright-software-short-notice-20021231

Copyright © 2004 World Wide Web Consortium, (Massachusetts Institute of Technology, European Research Consortium for Informatics and Mathematics, Keio University). Alle Rechte vorbehalten.

Copyright © [$date-of-software] World Wide Web Consortium, (Massachusetts Institute of Technology, European Research Consortium for Informatics and Mathematics, Keio University). Alle Rechte vorbehalten. Diese Arbeit wird unter der W3C® -Softwarelizenz {W3C® Software License} [1] vertrieben in der Hoffnung, dass dies nützlich ist, aber OHNE IRGENDWELCHE GARANTIEN; ohne gleichsam einer impliziten Garantie zur MARKTREIFE oder EIGNUNG FÜR EINEN BESTIMMTEN ZWECK.

[1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231

26.Februar 2004

1. Dokument-Objekt-Modell XPath

Herausgeber:
Ray Whitmer, Netscape/AOL

Inhaltsverzeichnis

1.1 Einführung

XPath 1.0 [XPath 1.0] ist ein wichtiger Teil einer Vielzahl von Spezifikationen geworden, einschließlich XForms, XPointer, XSL, XML Query, und so weiter. Es ist auch ein klarer Vorteil für Applikationen, die DOM verwenden, nun mit Hilfe von XPath-Ausdrücken Knoten automatisch oder deklarativ zu lokalisieren.

Diese Spezifikation wurde erstellt, um zwischen dem W3C-Information-Set des Dokument-Objekt-Modells, und dem Modell {model} von XPath zu verbinden; zuzulassen, dass XPath-Funktionen unterstützt werden und die Ergebnisse in den Arbeitsraum der DOM-APIs nach einem standardisierten Verfahren zurückgeben werden, sowie die Sofort-Verfügbarkeit {liveness} von Daten erlaubt, die nicht durch die XPath-Spezifikation beschrieben werden, sondern von der DOM-Hierarchie selbst stammen.

1.2 Überführung von DOM nach XPath {Mapping DOM to XPath}

Dieser Abschnitt zeigt eine Überführung zwischen dem Dokument-Objekt-Modell [DOM Level 2 Core] und dem Modell von XPath 1.0 [XPath 1.0] für Zwecke der Implementierung der APIs.

1.2.1 Elementknoten

Das DOM-Modell verwendet Element-Knoten zur Repräsentierung von Element-Informationseinheiten {Element Information Items}. Solche Knoten werden im Dokument direkt verwendet, um die Elemente eines XPath-Resultats zu repräsentieren.

1.2.2 Attributknoten

Das DOM-Modell verwendet Attr-Knoten zur Repräsentierung von Attribut-Informationseinehiten {Attribute Information Items} von Attribut- und Namensraumattribut-Eigenschaften der Element-Informationseinheit {Element Information Item}. Solche Knoten haben keinen Elterknoten, haben aber ein ownerElement (besitzendes Element) das so verwendet werden kann, wie XPath Eltern von Attributen definiert.

XPath 1.0 stellt die Namensraum-Attribute eines Elements nicht zur Verfügung. Die DOM-Implementierung von XPath 1.0 verwendet diese definierten Schnittstellen niemals direkt zur Rückgabe von Attr-Knoten der Namensraum-Attribute, sondern gibt die noch enthaltenen Element-Knoten zurück.

1.2.3 Namensraumknoten

Das XPath-Modell erwartet für jeden im Bereich gültigen Namensraum einen Namensraum-Knoten, der mit jedem Element {element} verbunden ist. DOM verwaltet lediglich {only maintains} die Namensraum-Attribute anstelle einer Replizierung des Namensraums jedes Element-Knotens, der im Bereich liegt. Die DOM-Implementierung von XPath erzeugt einen neuen Knoten vom Typ XPATH_NAMESPACE_NODE, definiert in der Schnittstelle XPathNamespace, zur vollständigen vorgegebenen Identität und Reihenfolge in einer Art und Weise, die mit XPath kompatibel ist. Dieser Knotentyp ist nur bei Verwendung der XPath-Evaluierungsmethoden sichtbar.

Das Set der im Bereich liegenden Namensräume eines Elements ist zum einen der vorgegebene xml-Namensraum und zum anderen {combined with} die beigefügten Namensraum-Attribute des aktuellen Elements und aller Vorfahren-Elemente {ancestor elements}. Zusätzlich zu den expliziten Namensraumattributen kann jedes Element eine implizite Deklaration eines Namensraums durch einen eigenen Präfix enthalten, oder, wenn kein Präfix vorhanden ist, den vorgegeben Namensraum enthalten, der durch die Namensraum-Serialisierung, -Feststellung, und -Erkennung {namespace serialization, fixup, and lookup} herbeigeführt wird, und die zum Set der im Bereich liegenden Namensräume hinzugefügt werden müssen wenn die Namensraumknoten für ein Element erzeugt werden. Diese Fälle von Namensraum-Knotensets sind konsistent zur Namensraum-Serialisierung, -Feststellung, und -Erkennung {namespace serialization, fixup, and lookup} in DOM Level 3.

1.2.4 Textknoten

Das XPath-Modell verlässt sich auf das [ XML-Informations-Set {XML Information Set] und repräsentiert Zeichen-Informationseinheiten {Character Information Items} in einem einzigen logischen Textknoten, während DOM dafür mehrere geteilte Text-Knoten infolge von Cdata-Abschnitten, Entity-Referenzen, und so weiter haben kann. Anstelle der Rückgabe mehrerer Knoten, bei denen XPath einen einzigen logischen Knoten vom Typ Text sieht, wird nur der erste nichtleere DOM-Text- oder CDATASection-Knoten jedes logischen XPath-Textknotens in das Knotenset zurückgegeben. Anwendungen, die XPath in einer Umgebung mit geteilten Textknoten verwenden, müssen den Text zu einem einzigen logischen Textknotens manuell zusammenführen, möglicherweise beginnend beim ersten Text- oder CDATASection-Knoten, der von der Implementierung zurückgegeben wird.

Hinweis: In Erwartung {an attempt} einer besseren Implementierung des XML-Informations-Sets {XML Information Set}, fügt DOM Level 3 Core [DOM Level 3 Core] das Attribut wholeText zur Text-Schnittstelle hinzu zwecks Wiederherstellung des gesamten Textes der logisch angrenzenden Textknoten {logically-adjacent Text nodes} sowie die Methode replaceWholeText zum Ersetzen {replacing} dieser Knoten.

1.2.5 Entity-Referenzknoten

Das DOM-Modell kann Informationseinheiten von nichtexpandierten Entityreferenzen {Unexpanded Entity Reference Information Items} repräsentieren oder die Position und das URI von expandierten Entityhierarchien unter Verwendung von EntityReference-Knoten bereitstellen. XPath 1.0 hält solche {corresponding} Informationen nicht fest.

Steht der Knoten für eine nichtexpandierte Entityreferenz, wird er übergangen entsprechend den XPath-Spezifikationen für alle Infoset-Informationseinheiten außer den in vorgeschriebener Weise verarbeiteten.

Gibt es eine Hierarchie unterhalb des Knotens, werden diese Knoten verarbeitet als ob sie Geschwister {siblings} der Entityreferenz sind, übereinstimmend mit dem Rest der DOM-Spezifikation.

EntityReference-Knoten, die innerhalb einer DOM-Hierarchie gefunden wurden, werden niemals als Knoten im Ergebnis zurückgegeben, aber zurückgegebene Knoten können EntityReference-Knoten enthalten oder in solchen enthalten sein. Text kann teilweise innerhalb und teilweise außerhalb eines EntityReference-Knotens geteilt sein, aber das ist bereits gelöst durch die Handhabung von Text-Knoten, beschrieben im vorhergehenden Abschnitt.

1.2.6 Kommentarknoten

Das DOM-Modell verwendet Comment-Knoten zum Repräsentieren von Kommentar-Informationseinheiten {Comment Information Items}. Diese Knoten im Dokument werden direkt zum Repräsentieren von Kommentaren eines XPath-Resultat verwendet.

1.2.7 Processing-Instruction-Knoten

Das DOM-Modell verwendet ProcessingInstruction-Knoten zum Repräsentieren von Processing-Instruction-Informationseinheiten {Processing Instruction Information Items}. Diese Knoten im Dokument werden direkt zum Repräsentieren von Prozessanweisungen im XPath-Resultat verwendet.

1.2.8 Dokumentfolge

Die Dokumentfolge {document order} der Knoten nach der DOM-Core-Spezifikation wurde so definiert, dass sie mit der XPath-Dokumentfolge {XPath document order} kompatibel ist. XPath-DOM erweitert die Dokumentordnung der DOM-Core-Spezifikation so, dass XPathNamespace-Knoten eingeschlossen sind. Elementknoten erscheinen vor ihren Kindern. Attributknoten und Namensraumknoten eines Elements erscheinen vor den Kindern des Elements. Namensraumknoten sind so definiert, dass sie vor den Attributknoten erscheinen. Die relative Anordnung mehrerer Namensraumknoten ist implementierungsabhängig. Die relative Anordnung mehrerer Attributknoten ist implementierungsabhängig. Die Methode compareTreePosition der in DOM Core definierten Node-Schnittstelle muss die XPathNamespace-Knoten unter Verwendung dieser erweiterten Dokumentfolge vergleichen, falls das XPath-DOM-Modul unterstützt wird.

Hinweis: In zukünftigen Versionen von XPath ist es möglich, dass die Ordnung der Namensraumknoten oder andere Aspekte der Dokumentfolge eventuell inkompatibel verändert werden.

1.3 Konformität

Dieser Abschnitt erklärt die Konformität zum DOM-Level-3-XPath-Modul.

Eine DOM-Implementierung muss auf hasFeature("xpath", "3.0") nicht true zurückgeben, außer die Implementierung ist konform zu diesem Modul. So wie in [DOM Level 3 Core] dokumentiert ist, wenn ein null-Wert oder eine leere Zeichenkette für den zweiten Parameter gesetzt ist, dann ist noch Konformität zur Version {some version} des DOM-XPath-Moduls erforderlich, oder false muss zurückgegeben werden.

Eine konforme Implementierung besteht nur, wenn DOM Level 3 XPath alle Schnittstellen unterstützt, die in dieser Spezifikation spezifiziert sind. Zusätzlich zur Implementierung der Schnittstelle im DOM-XPath-Modul muss eine konforme Implementierung korrekt jeden Teil der XPath-1.0-Spezifikation bei der Auswertung der Ausdrücke einschließlich der Lokalisierungspfade, der Ausdrücke, die Kern-Funktionsbibliothek, und die Überführung {mapping} zwischen DOM und dem XPath-1.0-Datenmodell, wie im DOM-Level-3-XPath-Modul beschrieben, implementieren. Die XPath-id()-Funktion muss das entsprechende {corresponding} Element zurückgeben, jedes andere wird von der DOM-Methode Document.getElementById zurück gegeben.

Nach dem Zutreffen der Erfordernisse zur Konformität darf eine konforme Implementierung zusätzlich Funktionen und Variablen implementieren. Anwendungen, die Ausdrücke entsprechend diesen Erweiterungen auswerten, werden nicht notwendigerweise portabel zu einer anderen Implementierung der DOM-Level-3-XPath-Module sein.

1.4 Schnittstellen {Interfaces}

Eine Implementierung ist dann DOM-Level-3-XPath-konform, wenn sie die Kernmodule, die in [DOM Level 2 Core] definiert sind, und die in dieser Spezifikation definierten Module. Eine Implementierung ist konform zu einem DOM-Modul, wenn sie alle Schnittstellen dieses Moduls und alle damit verbundenen Bedeutungen unterstützt.

Eine DOM-Anwendung kann die Methode hasFeature(feature, version) der DOMImplementation-Schnittstelle mit den Parameterwerten "XPath" und "3.0" verwenden um festzustellen, ob oder ob nicht das XPath-Modul von der Implementierung unterstützt wird. Gehörig zur {in order to} vollen Unterstützung dieses Moduls muss eine Implementierung außerdem die "Core"-Eigenschaft unterstützen, die in der DOM-Level-2-Core-Spezifikation [DOM Level 2 Core] definiert ist.

Eine DOM-Implementierung muss nicht den Wert true der Methode hasFeature(feature, version) für die betreffende Eigenschaft {feature} zurückgeben, es sei denn, die Implementierung ist konform zu diesem Modul. Die Versionsnummer für eine Eigenschaft die in diesem Dokument vorkommt, ist "3.0".

Ausnahme XPathException

Eine neue Ausnahme {exception} wurde zu den Ausnahmen speziell dieser XPath-Schnittstelle hinzugefügt.


IDL Definition
exception XPathException {
  unsigned short   code;
};
// XPathExceptionCode
const unsigned short      INVALID_EXPRESSION_ERR         = 51;
const unsigned short      TYPE_ERR                       = 52;

Definitionsgruppe {Definition group} XPathExceptionCode
Definierte Konstanten
INVALID_EXPRESSION_ERR
Wenn der Ausdruck einen Syntaxfehler oder ansonsten keine gültige Formulierung entsprechend den Regeln der spezifischen XPathEvaluator-Schnittstelle hat oder spezielle Erweiterungsfunktionen oder -variablen enthält, die von dieser Implementierung nicht unterstützt werden.
TYPE_ERR
Wenn der Ausdruck nicht zur Rückgabe des angegebenen Typs konvertiert werden kann.
Schnittstelle {Interface} XPathEvaluator

Die Auswertung von XPath-Ausdrücken wird bereitgestellt von XPathEvaluator. In einer DOM-Implementierung, die die XPath 3.0-Funktionalität {feature} so wie oben beschrieben unterstützt, wird die XPathEvaluator-Schnittstelle im selben Objekt implementiert, in der die Document-Schnittstelle implementiert ist, die es ermöglicht, gesetzt durch übliche bindungsspezifische Methoden wie Typwandlung {casting} oder durch die getInterface-Methode des DOM Level 3 zu wirken. In diesem Fall stützt die Implementierung, die dem Dokument unterliegt, das XPath-DOM-Modul und ist mit der XPath-1.0-Spezifikation kompatibel.

Die Auswertung von Ausdrücken mit spezialisierten Erweiterungsfunktionen oder Variablen kann möglicherweise nicht in allen Implementierungen funktionieren und ist demzufolge nicht portabel. XPathEvaluator-Implementierungen können eventuell von anderen Quellen verfügbar sein, die spezifische Unterstützung für spezialisierte Erweiterungsfunktionen oder Variablen bereitstellen könnten, wie sie durch andere Spezifikationen definiert würden.


IDL Definition
interface XPathEvaluator {
  XPathExpression    createExpression(in DOMString expression,
                                      in XPathNSResolver resolver)
                                        raises(XPathException,
                                               DOMException);
  XPathNSResolver    createNSResolver(in Node nodeResolver);
  DOMObject          evaluate(in DOMString expression,
                              in Node contextNode,
                              in XPathNSResolver resolver,
                              in unsigned short type,
                              in DOMObject result)
                                        raises(XPathException,
                                               DOMException);
};

Methods
createExpression
Erzeugt einen geparsten XPath-Ausdruck mit aufgelösten Namensräumen. Das ist günstig, wenn ein Ausdruck in einer Anwendung wieder verwendet wird, seit es möglich ist, die Ausdruckszeichenkette in eine effizientere interne Form zu übersetzen unter Berücksichtigung aller Namensraum-Präfixe {namespace prefixes}, die innerhalb des Ausdrucks auftreten.
Parameter
expression vom Typ DOMString
Die XPath-Ausdrucks-Zeichenkette, die zu parsen ist.
resolver vom Typ XPathNSResolver
Der Parameter resolver ermöglicht die Übersetzung von allen Präfixen, einschließlich des xml-Namensraum-Präfixes innerhalb von XPath-Ausdrücken in die passenden Namensraum-URIs {namespace URIs}. Ist dafür null angegeben, so führt jeder Namensraum-Präfix {namespace prefix} mitten im Ausdruck zu DOMException mit dem Code NAMESPACE_ERR.
Rückgabewert

XPathExpression

Die übersetzte {compiled} Form des XPath-Ausdrucks.

Ausnahmen

XPathException

INVALID_EXPRESSION_ERR: Wird gesetzt, falls der Ausdruck gemäß den Regeln von XPathEvaluator ungültig ist.

DOMException

NAMESPACE_ERR: Wird gesetzt, falls der Ausdruck Namensraum-Präfixe {namespace prefixes} enthält, die nicht vom angegebenen XPathNSResolver erkannt {resolved} werden können.

createNSResolver
Passt jeden möglichen DOM-Knoten zum Erkennen von Namensräumen so an, dass ein XPath-Ausdruck relativ zum Knotenkontext leicht ausgewertet werden kann, der sich inerhalb des Dokuments befindet. Der Adapter arbeitet wie die DOM-Level-3-Methode lookupNamespaceURI auf Knoten in Erkennung des Namensraum-URI von einem gegebenen Präfix mit den aktuellen Informationen die in der Knotenhierarchie vorhanden sind, im Moment des Aufrufs von lookupNamespaceURI, also dem richtigen Erkennen des impliziten xml-Präfixes.
Parameter
nodeResolver vom Typ Node
Der Knoten, der als Kontext bei der Namensraumerkennung fungiert.
Rückgabewert

XPathNSResolver

XPathNSResolver erkennt Namensräume in Bezug auf die Definitionen im Bereich {scope} eines angegebenen Knotens.

Keine Ausnahmen
evaluate
Wertet die Zeichenkette des XPath-Ausdrucks aus und gibt ein Ergebnis mit dem angegebenem Typ zurück, sofern möglich.
Parameter
expression vom Typ DOMString
Die XPath-Ausdrucks-Zeichenkette, die zu parsen und zu bewerten ist.
contextNode vom Typ Node
Der Kontext {context} ist der Kontextknoten zur Auswertung dieses XPath-Ausdrucks. Wenn der XPathEvaluator gesetzt wurde {was obtained} durch Typanpassung {by casting} von Document, dann muss dieser Kontextknoten zum gleichen Dokument gehören und muss ein Document-, Element-, Attribute-, Text-, CDATASection-, Comment-, ProcessingInstruction-, oder ein XPathNamespace-Knoten sein. Ist der Kontextknoten ein Text- oder ein CDATASection-Knoten, dann wird der Kontext interpretiert als der gesamte logische Textknoten wie von XPath gesehen; außer der Knoten ist leer, in diesem Fall kann er nicht als ein XPath-Kontext gelten.
resolver vom Typ XPathNSResolver
Der resolver ermöglicht die Übersetzung von allen Präfixen, einschließlich des xml-Namensraum-Präfixes innerhalb von XPath-Ausdrücken in die passenden Namensraum-URIs {namespace URIs}. Ist dafür null angegeben, so führt jeder Namensraum-Präfix {namespace prefix} mitten im Ausdruck zu DOMException mit dem Code NAMESPACE_ERR.
type vom Typ unsigned short
Wenn ein bestimmter type angegeben ist, dann wird das Ergebnis mit dem entsprechenden Typ zurückgegeben.
Bei Resultaten in XPath 1.0 muss dies einer der Codes der XPathResult-Schnittstelle sein.
result vom Typ DOMObject
result gibt ein bestimmtes Ergebnisobjekt an, welches wieder verwendet werden kann und von dieser Methode zurückgegeben wird. Ist der Wert null oder die Implementierung gestattet nicht die Wiederverwendung des spezifischen Ergebnisses, dann wird ein neues result-Objekt erzeugt und zurückgegeben.
Beim Ergebnis in XPath 1.0 wird dieses Objekt vom Typ XPathResult sein.
Rückgabewert

DOMObject

Ergebnis der Verarbeitung des XPath-Ausdrucks.
Beim Ergebnis in XPath 1.0 wird dieses Objekt vom Typ XPathResult sein.

Ausnahmen

XPathException

INVALID_EXPRESSION_ERR: Wird gesetzt, falls der Ausdruck gemäß den Regeln von XPathEvaluator ungültig ist.

TYPE_ERR: Wird gesetzt, falls das Ergebnis nicht mit in den angegebenen Typ überführt {converted} werden kann.

DOMException

NAMESPACE_ERR: Wird gesetzt, falls der Ausdruck Namensraum-Präfixe {namespace prefixes} enthält, die nicht vom angegebenen XPathNSResolver erkannt {resolved} werden können.

WRONG_DOCUMENT_ERR: Der Knoten ist von einem Dokument, das nicht von diesem XPathEvaluator unterstützt wird.

NOT_SUPPORTED_ERR: Der Knoten ist kein Typ, der als ein XPath-Kontextknoten erlaubt ist oder der angeforderte Typ wird von diesem XPathEvaluator nicht erlaubt.

Schnittstelle {Interface} XPathExpression

Die XPathExpression-Schnittstelle repräsentiert einen geparsten und verarbeiteten {resolved} XPath-Ausdruck.


IDL Definition
interface XPathExpression {
  DOMObject          evaluate(in Node contextNode,
                              in unsigned short type,
                              in DOMObject result)
                                        raises(XPathException,
                                               DOMException);
};

Methoden
evaluate
Wertet diesen XPath-Ausdruck aus und gibt ein Ergebnis zurück.
Parameter
contextNode vom Typ Node
Der Kontext {context} ist der Kontextknoten zur Auswertung dieses XPath-Ausdrucks. Wenn der XPathEvaluator gesetzt wurde {was obtained} durch Typanpassung {by casting} von Document, dann muss dieser Kontextknoten zum gleichen Dokument gehören und muss ein Document-, Element-, Attribute-, Text-, CDATASection-, Comment-, ProcessingInstruction-, oder ein XPathNamespace-Knoten sein. Ist der Kontextknoten ein Text- oder ein CDATASection-Knoten, dann wird der Kontext interpretiert als der gesamte logische Textknoten wie von XPath gesehen; außer der Knoten ist leer, in diesem Fall kann er nicht als ein XPath-Kontext gelten.
type vom unsigned short
Wenn ein bestimmter type angegeben ist, dann wird das Ergebnis mit dem entsprechenden Typ zurückgegeben.
Bei Resultaten in XPath 1.0 muss dies einer der Codes der XPathResult-Schnittstelle sein.
result vom Typ DOMObject
result gibt ein bestimmtes Ergebnisobjekt an, welches wieder verwendet werden kann und von dieser Methode zurückgegeben wird. Ist der Wert null oder die Implementierung gestattet nicht die Wiederverwendung des angegeben result-Wertes, dann wird ein neues result-Objekt erzeugt und zurückgegeben.
Beim Ergebnis in XPath 1.0 wird dieses Objekt vom Typ XPathResult sein.
Return Value

DOMObject

Ergebnis der Verarbeitung des XPath-Ausdrucks.
Beim Ergebnis in XPath 1.0 wird dieses Objekt vom Typ XPathResult sein.

Ausnahmen

XPathException

TYPE_ERR: Wird gesetzt, falls das Ergebnis nicht mit in den angegebenen Typ überführt {converted} werden kann.

DOMException

WRONG_DOCUMENT_ERR: Der Knoten ist von einem Dokument, das nicht vom XPathEvaluator unterstützt wird, der diesen XPathExpression erzeugt.

NOT_SUPPORTED_ERR: Der Knoten ist kein Typ, der als ein XPath-Kontextknoten erlaubt ist oder der angeforderte Typ wird von diesem XPathExpression nicht erlaubt.

Interface XPathNSResolver

Die XPathNSResolver-Schnittstelle erlaubt prefix-Zeichenketten im Ausdruck vollständig mit den namespaceURI-Zeichenketten zu verbinden. XPathEvaluator kann die Implementierung eines XPathNSResolver von einem Knoten erzeugen, oder die Schnittstelle wurde von irgendeiner Anwendung implementiert.


IDL Definition
interface XPathNSResolver {
  DOMString          lookupNamespaceURI(in DOMString prefix);
};

Methoden
lookupNamespaceURI
Aktualisiert {look up} den Namensraum-URI {namespace URI} der zum gegebenen Namensraum-Präfix {namespace prefix} gehört. Der XPath-Evaluator darf niemals diese Methode mit dem Wert null oder einem leeren Argument aufrufen, weil dann das Ergebnis undefiniert ist.
Parameter
prefix vom Typ DOMString
Das stellvertretende {look for} Präfix.
Rückgabewert

DOMString

Gibt den zugehörigen namespace URI zurück oder null, wenn nichts gefunden wurde.

Keine Ausnahmen
Schnittstelle XPathResult

Die XPathResult-Schnittstelle repräsentiert das Ergebnis der Auswertung {evaluation} eines XPath-1.0-Ausdrucks innerhalb des Kontextsets eines besonderen {particular} Knotens. Nach {Since} der Auswertung eines XPath-Ausdrucks kann das Ergebnis in verschiedenen Typen vorliegen, dieses Objekt macht es möglich Typ und Wert des Ergebnisses zu erkennen {discover} und Typ und Wert des Ergebnisses zu manipulieren.


IDL Definition
interface XPathResult {

  // XPathResultType
  const unsigned short      ANY_TYPE                       = 0;
  const unsigned short      NUMBER_TYPE                    = 1;
  const unsigned short      STRING_TYPE                    = 2;
  const unsigned short      BOOLEAN_TYPE                   = 3;
  const unsigned short      UNORDERED_NODE_ITERATOR_TYPE   = 4;
  const unsigned short      ORDERED_NODE_ITERATOR_TYPE     = 5;
  const unsigned short      UNORDERED_NODE_SNAPSHOT_TYPE   = 6;
  const unsigned short      ORDERED_NODE_SNAPSHOT_TYPE     = 7;
  const unsigned short      ANY_UNORDERED_NODE_TYPE        = 8;
  const unsigned short      FIRST_ORDERED_NODE_TYPE        = 9;

  readonly attribute unsigned short  resultType;
  readonly attribute double          numberValue;
                                        // raises(XPathException) on retrieval

  readonly attribute DOMString       stringValue;
                                        // raises(XPathException) on retrieval

  readonly attribute boolean         booleanValue;
                                        // raises(XPathException) on retrieval

  readonly attribute Node            singleNodeValue;
                                        // raises(XPathException) on retrieval

  readonly attribute boolean         invalidIteratorState;
  readonly attribute unsigned long   snapshotLength;
                                        // raises(XPathException) on retrieval

  Node               iterateNext()
                                        raises(XPathException,
                                               DOMException);
  Node               snapshotItem(in unsigned long index)
                                        raises(XPathException);
};

Definitionsgruppe XPathResultType

Eine Ganzzahl {integer}, die erkennen lässt, welchen Typ das Ergebnis hat.

Wenn ein bestimmter Typ {type} angegeben ist, dann wird das Ergebnis als entsprechender Typ zurückgegeben unter Verwendung der XPath-Typkonvertierung {XPath type conversions}, die erforderlich und möglich ist.

Definierte Konstanten
ANY_TYPE
Dieser Codewert repräsentiert keinen bestimmten Typ. Die Auswertung eines XPath-Ausdrucks wird niemals diesen Typ erzeugen. Wird dieser Typwert angefordert, dann gibt die Auswertung das Ergebnis mit dem Typ zurück, der normalerweise {naturally} von der Auswertung des Ausdrucks erzeugt wird.
Ist das normale Ergebnis {natural result} ein Knotenset wenn ANY_TYPE angefordert war, dann ist immer UNORDERED_NODE_ITERATOR_TYPE der Ergebnistyp. Jede andere Repräsentation eines Knotensets muss explizit angefordert werden.
ANY_UNORDERED_NODE_TYPE
Das Ergebnis ist ein Knotenset {node set} wie es in [XPath 1.0] definiert ist, und verhält sich wie ein Einzelknoten, der null sein kann, wenn das Knotenset leer ist. Dokumentänderungen beschädigen den Knoten nicht, erwecken aber den Eindruck, dass der Ergebnisknoten nicht mehr zum aktuellen Dokument gehört. Dies ist eine Vereinfachung, die eine Optimierung erlaubt, nachdem {since} die Implementierung bei jeden möglichen Knoten stehen bleibt, der im Ergebnisset gefunden wurde.
Gibt es mehr als einen Knoten im aktuellen Resultat, dann muss ein zurückgegebener Einzelknoten keineswegs der erste in der Dokumentfolge sein.
BOOLEAN_TYPE
Das Ergebnis ist vom Typ boolean wie er in [XPath 1.0] definiert ist. Eine Dokumentänderung macht den boolean-Wert nicht ungültig, kann aber bedeuten, dass eine Aktualisierung {reevaluation} nicht denselben booleanschen Wert ergeben würde.
FIRST_ORDERED_NODE_TYPE
Das Ergebnis ist ein Knotenset {node set} wie es in [XPath 1.0] definiert ist, und verhält sich wie ein Einzelknoten, der null sein kann, wenn das Knotenset leer ist. Dokumentänderungen beschädigen den Knoten nicht, erwecken aber den Eindruck, dass der Ergebnisknoten nicht mehr zum aktuellen Dokument gehört. Dies ist eine Vereinfachung, die eine Optimierung erlaubt, nachdem {since} die Implementierung bei jeden möglichen Knoten stehen bleibt, der im Ergebnisset gefunden wurde.
Gibt es mehr als einen Knoten im aktuellen Resultat, dann muss ein zurückgegebener Einzelknoten keineswegs der erste in der Dokumentfolge sein.
NUMBER_TYPE
Das Ergebnis ist vom Typ number so wie in [XPath 1.0] definiert. Eine Dokumentänderung macht den number-Wert nicht ungültig, kann aber bedeuten, dass eine Aktualisierung {reevaluation} nicht denselben numerischen Wert {number} ergeben würde.
ORDERED_NODE_ITERATOR_TYPE
Das Ergebnis ist ein Knotenset, so wie in [XPath 1.0] definiert, das iterativ entstehen und Knoten entsprechend der Dokumentfolge erzeugen kann. Eine Dokumentänderung zerstört die Iteration.
ORDERED_NODE_SNAPSHOT_TYPE
Das Ergebnis ist ein Knotenset {node set} so wie in [XPath 1.0] definiert, und das sich wie eine Schnappschussliste {snapshot list} von Knoten verhält, die sich in originaler Dokumentfolge befinden. Eine Dokumentänderung beschädigt den Schnappschuss {Snapshot} nicht, kann aber dazu führen, dass eine Aktualisierung {reevaluation} nicht denselben Schnappschuss ergibt, und Knoten im Schnappschuss verändert wurden, verschoben oder vom Dokument entfernt sein können.
STRING_TYPE
Das Ergebnis ist eine Zeichenkette {string} so wie in [XPath 1.0] definiert. Eine Dokumentänderung beschädigt die Zeichenkette nicht, kann aber dazu führen, dass die Zeichenkette nicht mehr mit dem aktuellen Dokument verbunden ist.
UNORDERED_NODE_ITERATOR_TYPE
Das Ergebnis ist ein Knotenset {node set} so wie in [XPath 1.0] definiert, das iterativ entstehen und Knoten in keiner bestimmten Folge erzeugen kann. Eine Dokumentänderung zerstört die Iteration. Dies ist der Vorgabetyp der dann zurückgegeben wird, wenn das Ergebnis ein Knotenset ist und ANY_TYPE angefordert wird.
UNORDERED_NODE_SNAPSHOT_TYPE
Das Ergebnis ist ein Knotenset {node set} so wie in [XPath 1.0] definiert, das als eine Schnappschussliste {snapshot list} von Knoten in keiner besonderen Reihenfolge entsteht. Eine Dokumentänderung kann den Schnappschuss nicht beschädigen, kann aber dazu führen, dass eine Aktualisierung nicht denselben Schnappschuss ergibt und Knoten im Schnappschuss verändert, verschoben oder vom Dokument entfernt sein könnten.
Attribute
booleanValue vom Typ boolean, nur lesbar
Der Wert dieses boolean-Ergebnisses.
Ausnahmen auf Wiederherstellung {Exceptions on retrieval}

XPathException

TYPE_ERR: Wird gesetzt, wenn resultType nicht vom Typ BOOLEAN_TYPE ist.

invalidIteratorState of type boolean, readonly
Bedeutet, dass der Iterator zerstört wurde. Logisch wahr {true}, wenn resultType ein UNORDERED_NODE_ITERATOR_TYPE oder ein ORDERED_NODE_ITERATOR_TYPE ist und das Dokument seit Rückgabe dieses Resultats verändert wurde.
numberValue of type double, readonly
Der Wert dieses Attributs ist ein numerisches Ergebnis. Wenn der der DOM-Bindung innewohnende Typ "double" nicht exakt ein IEEE 754-konformes Ergebnis des XPath-Ausdrucks unterstützt, dann liegt es an der Definition der Bindung selbst anzugeben, wie der numerische XPath-Typ in die native verbindliche Zahl umgewandelt wird.
Ausnahmen auf Wiederherstellung

XPathException

TYPE_ERR: Wird gesetzt, wenn resultType kein NUMBER_TYPE ist.

resultType vom Typ unsigned short, nur lesbar
Eine Codewert, der den Typ dieses Ergebnisses repräsentiert, wie er von den Typkonstanten definiert wird.
singleNodeValue vom Typ Node, nur lesbar
Der Wert dieses Einzelknoten-Ergebnisses, kann auch null sein.
Ausnahmen auf Wiederherstellung

XPathException

TYPE_ERR: Wird gesetzt, wenn resultType weder ein ANY_UNORDERED_NODE_TYPE noch ein FIRST_ORDERED_NODE_TYPE ist.

snapshotLength vom Typ unsigned long, nur lesbar
Die Anzahl der Knoten im resultierenden Schnappschuss. Gültige Werte für snapshotItem zählen von 0 bis snapshotLength-1 inklusive.
Ausnahmen auf Wiederherstellung

XPathException

TYPE_ERR: Wird gesetzt, wenn resultType weder ein UNORDERED_NODE_SNAPSHOT_TYPE noch ein ORDERED_NODE_SNAPSHOT_TYPE ist.

stringValue vom Typ DOMString, nur lesbar
Der Wert dieses Zeichenketten-Resultats.
Exceptions on retrieval

XPathException

TYPE_ERR: Wird gesetzt, wenn resultType kein STRING_TYPE ist.

Methoden
iterateNext
Iteriert und gibt den nächsten Knoten vom Knotenset zurück oder null, wenn es keine weiteren Knoten gibt.
Rückgabewert

Node

Gibt den nächsten Knoten zurück.

Ausnahmen

XPathException

TYPE_ERR: Wird gesetzt, wenn resultType weder ein UNORDERED_NODE_ITERATOR_TYPE noch ein ORDERED_NODE_ITERATOR_TYPE ist.

DOMException

INVALID_STATE_ERR: Das Dokument wurde verändert seitdem das letzte Ergebnis zurückgegeben wurde.

Keine Parameter
snapshotItem
Gibt den indexten Eintrag {indexth item} der Schnappschuss-Kollektion zurück. Ist index größer oder gleich der Anzahl von Knoten in der Liste, gibt diese Methode null zurück. Abweichend vom Iteratorergebnis wird der Schnappschuss nicht zerstört, ist aber möglicherweise nicht mehr mit dem aktuellen Dokument verbunden, wenn dieses verändert wurde.
Parameter
index vom Typ unsigned long
Index innerhalb der Schnappschuss-Kollektion.
Rückgabewert

Node

Der Knoten an der indexten {indexth} Stelle in der NodeList, oder null, wenn der Index ungültig ist.

Ausnahmen

XPathException

TYPE_ERR: Wird gesetzt, wenn resultType weder ein UNORDERED_NODE_SNAPSHOT_TYPE noch ein ORDERED_NODE_SNAPSHOT_TYPE ist.

Schnittstelle XPathNamespace

Die XPathNamespace-Schnittstelle wird zurückgegeben von den XPathResult-Schnittstellen um den XPath-Namensraum-Knotentyp zu repräsentieren, der in DOM fehlt. Es gibt keinen öffentlichen {public} Konstruktor für diesen Knotentyp. Es wird versucht, den Knotentyp in eine Hierarchie zu platzieren, oder ein NamedNodeMap resultiert in einer DOMException mit dem Codewert HIERARCHY_REQUEST_ERR. Dieser Knoten ist nur lesbar {read only}, sodass Methoden oder Veränderungen {settings} von Attributen, die den Knoten verändern würden, ihn in eine DOMException mit dem Codewert HIERARCHY_REQUEST_ERR überführen.

Die Kernspezifikation {core specification} beschreibt Attribute der Node-Schnittstelle, die für unterschiedliche Knotentypen unterschiedlich sind, beschreibt aber nicht XPATH_NAMESPACE_NODE, sodass hier eine Beschreibung jener Attribute für diesen Knotentyp ist. Alle Attribute von Node , die nicht in diesem Abschnitt beschrieben sind, haben einen null- oder false-Wert.

ownerDocument stimmt überein mit dem ownerDocument vom ownerElement, auch wenn das Element später angebunden wurde.

nodeName ist immer die Zeichenkette "#namespace".

prefix ist das Präfix des Namensraums repräsentiert vom Knoten.

localName ist dasselbe wie prefix.

nodeType ist gleich zu XPATH_NAMESPACE_NODE.

namespaceURI ist das Namensraum-URI vom Namensraums repräsentiert vom Knoten.

nodeValue ist dasselbe wie namespaceURI.

adoptNode, cloneNode, und importNode funktionieren nicht bei diesem Knoten wobei DOMException mit dem Codewert NOT_SUPPORTED_ERR gesetzt wird.

Hinweis: In zukünftigen Versionen der XPath-Spezifikation kann die Definition eines Namensraumknotens inkompatibel verändert werden, in diesem Fall können inkompatible Veränderungen an den Feldwerten erforderlich werden um Versionen über XPath 1.0 hinaus zu implementieren.


IDL Definition
interface XPathNamespace : Node {

  // XPathNodeType
  const unsigned short      XPATH_NAMESPACE_NODE           = 13;

  readonly attribute Element         ownerElement;
};

Definitionsgruppe {Definition group} XPathNodeType

Eine Ganzzahl {integer}, die erkennen lässt, von welchem Typ der Knoten ist.

Hinweis: Es gibt gegenwärtig nur einen Knotentyp der zu XPath spezifisch ist. Die Zahlen in dieser Liste dürfen nicht {must not} mit den Werten kollidieren, die mit den Core-Knotentypen verbunden sind.

Definierte Konstanten
XPATH_NAMESPACE_NODE
Dieser Knoten ist ein Namespace-Knoten.
Attribute
ownerElement vom Typ Element, nur lesbar
Das Element, an dem der Namensraum sichtbar war, als es angefordert wurde. Dies bewirkt keine Veränderung an einem zurückgegebenen Namensraumknoten auch wenn das Dokument so verändert wird, dass der Namensraum aus dem Bereich dieses element-Knotens verschwindet und der Knoten nicht mehr von XPath gefunden wird.

26.Februar 2004

Anhang A: IDL Definitions

Dieser Anhang enthält die kompletten OMG IDL [OMG IDL] der "Level 3 Document Object Model XPath"-Definitionen.

Die IDL-Dateien sind auch verfügbar als: http://www.w3.org/TR/2004/NOTE-DOM-Level-3-XPath-20040226/idl.zip

xpath.idl:

// File: xpath.idl

#ifndef _XPATH_IDL_
#define _XPATH_IDL_

#include "dom.idl"

#pragma prefix "dom.w3c.org"
module xpath
{

  typedef dom::DOMString DOMString;
  typedef dom::Node Node;
  typedef dom::DOMObject DOMObject;
  typedef dom::Element Element;

  interface XPathNSResolver;
  interface XPathExpression;

  exception XPathException {
    unsigned short   code;
  };
  // XPathExceptionCode
  const unsigned short      INVALID_EXPRESSION_ERR         = 51;
  const unsigned short      TYPE_ERR                       = 52;


  interface XPathEvaluator {
    XPathExpression    createExpression(in DOMString expression,
                                        in XPathNSResolver resolver)
                                        raises(XPathException,
                                               dom::DOMException);
    XPathNSResolver    createNSResolver(in Node nodeResolver);
    DOMObject          evaluate(in DOMString expression,
                                in Node contextNode,
                                in XPathNSResolver resolver,
                                in unsigned short type,
                                in DOMObject result)
                                        raises(XPathException,
                                               dom::DOMException);
  };

  interface XPathExpression {
    DOMObject          evaluate(in Node contextNode,
                                in unsigned short type,
                                in DOMObject result)
                                        raises(XPathException,
                                               dom::DOMException);
  };

  interface XPathNSResolver {
    DOMString          lookupNamespaceURI(in DOMString prefix);
  };

  interface XPathResult {

    // XPathResultType
    const unsigned short      ANY_TYPE                       = 0;
    const unsigned short      NUMBER_TYPE                    = 1;
    const unsigned short      STRING_TYPE                    = 2;
    const unsigned short      BOOLEAN_TYPE                   = 3;
    const unsigned short      UNORDERED_NODE_ITERATOR_TYPE   = 4;
    const unsigned short      ORDERED_NODE_ITERATOR_TYPE     = 5;
    const unsigned short      UNORDERED_NODE_SNAPSHOT_TYPE   = 6;
    const unsigned short      ORDERED_NODE_SNAPSHOT_TYPE     = 7;
    const unsigned short      ANY_UNORDERED_NODE_TYPE        = 8;
    const unsigned short      FIRST_ORDERED_NODE_TYPE        = 9;

    readonly attribute unsigned short  resultType;
    readonly attribute double          numberValue;
                                        // raises(XPathException) on retrieval

    readonly attribute DOMString       stringValue;
                                        // raises(XPathException) on retrieval

    readonly attribute boolean         booleanValue;
                                        // raises(XPathException) on retrieval

    readonly attribute Node            singleNodeValue;
                                        // raises(XPathException) on retrieval

    readonly attribute boolean         invalidIteratorState;
    readonly attribute unsigned long   snapshotLength;
                                        // raises(XPathException) on retrieval

    Node               iterateNext()
                                        raises(XPathException,
                                               dom::DOMException);
    Node               snapshotItem(in unsigned long index)
                                        raises(XPathException);
  };

  interface XPathNamespace : Node {

    // XPathNodeType
    const unsigned short      XPATH_NAMESPACE_NODE           = 13;

    readonly attribute Element         ownerElement;
  };
};

#endif // _XPATH_IDL_

26.Februar 2004

Anhang B: Java-Sprachbindung

Dieser Anhang enthält die komplette Java-Sprachbindung [Java] für "Level 3 Document Object Model XPath".

Die Java-Dateien sind auch verfügbar als http://www.w3.org/TR/2004/NOTE-DOM-Level-3-XPath-20040226/java-binding.zip

B.1 Andere XPath-Schnittstellen

org/w3c/dom/xpath/XPathException.java:

package org.w3c.dom.xpath;

public class XPathException extends RuntimeException {
    public XPathException(short code, String message) {
       super(message);
       this.code = code;
    }
    public short   code;
    // XPathExceptionCode
    public static final short INVALID_EXPRESSION_ERR    = 51;
    public static final short TYPE_ERR                  = 52;

}

org/w3c/dom/xpath/XPathEvaluator.java:

package org.w3c.dom.xpath;

import org.w3c.dom.Node;
import org.w3c.dom.DOMException;

public interface XPathEvaluator {
    public XPathExpression createExpression(String expression,
                                            XPathNSResolver resolver)
                                            throws XPathException, DOMException;

    public XPathNSResolver createNSResolver(Node nodeResolver);

    public Object evaluate(String expression,
                           Node contextNode,
                           XPathNSResolver resolver,
                           short type,
                           Object result)
                           throws XPathException, DOMException;

}

org/w3c/dom/xpath/XPathExpression.java:

package org.w3c.dom.xpath;

import org.w3c.dom.Node;
import org.w3c.dom.DOMException;

public interface XPathExpression {
    public Object evaluate(Node contextNode,
                           short type,
                           Object result)
                           throws XPathException, DOMException;

}

org/w3c/dom/xpath/XPathNSResolver.java:

package org.w3c.dom.xpath;

public interface XPathNSResolver {
    public String lookupNamespaceURI(String prefix);

}

org/w3c/dom/xpath/XPathResult.java:

package org.w3c.dom.xpath;

import org.w3c.dom.Node;
import org.w3c.dom.DOMException;

public interface XPathResult {
    // XPathResultType
    public static final short ANY_TYPE                  = 0;
    public static final short NUMBER_TYPE               = 1;
    public static final short STRING_TYPE               = 2;
    public static final short BOOLEAN_TYPE              = 3;
    public static final short UNORDERED_NODE_ITERATOR_TYPE = 4;
    public static final short ORDERED_NODE_ITERATOR_TYPE = 5;
    public static final short UNORDERED_NODE_SNAPSHOT_TYPE = 6;
    public static final short ORDERED_NODE_SNAPSHOT_TYPE = 7;
    public static final short ANY_UNORDERED_NODE_TYPE   = 8;
    public static final short FIRST_ORDERED_NODE_TYPE   = 9;

    public short getResultType();

    public double getNumberValue()
                                     throws XPathException;

    public String getStringValue()
                                     throws XPathException;

    public boolean getBooleanValue()
                                     throws XPathException;

    public Node getSingleNodeValue()
                                     throws XPathException;

    public boolean getInvalidIteratorState();

    public int getSnapshotLength()
                                     throws XPathException;

    public Node iterateNext()
                            throws XPathException, DOMException;

    public Node snapshotItem(int index)
                             throws XPathException;

}

org/w3c/dom/xpath/XPathNamespace.java:

package org.w3c.dom.xpath;

import org.w3c.dom.Element;
import org.w3c.dom.Node;

public interface XPathNamespace extends Node {
    // XPathNodeType
    public static final short XPATH_NAMESPACE_NODE      = 13;

    public Element getOwnerElement();

}

26.Februar 2004

Anhang C: ECMAScript-Sprachbindung

Dieser Anhang enthält die komplette ECMAScript-Bindung [ECMAScript] für die "Level 3 Document Object Model XPath"-Definitionen.

Eigenschaften der XPathException-Konstruktorfunktionen:
XPathException.INVALID_EXPRESSION_ERR
Der Wert der Konstante XPathException.INVALID_EXPRESSION_ERR ist 51.
XPathException.TYPE_ERR
Der Wert der Konstante XPathException.TYPE_ERR ist 52.
Objekte, die die XPathException-Schnittstelle implementieren:
Eigenschaften von Objekten die die XPathException-Schnittstelle implementieren:
code
Diese Eigenschaft ist vom Typ Number.
Objekte, die die XPathEvaluator-Schnittstelle implementieren:
Funktionen von Objekten, die die XPathEvaluator-Schnittstelle implementieren:
createExpression(expression, resolver)
Diese Funktion gibt ein Objekt zurück das die XPathExpression-Schnittstelle implementiert.
Der expression-Parameter ist vom Typ String.
Der resolver-Parameter ist ein Objekt das die XPathNSResolver-Schnittstelle implementiert.
Diese Funktion bringt ein Objekt hervor {can raise an object} das die XPathException-Schnittstelle oder die DOMException-Schnittstelle implementiert.
createNSResolver(nodeResolver)
Diese Funktion gibt ein Objekt zurück das die XPathNSResolver-Schnittstelle implementiert.
Der nodeResolver-Parameter ist ein Objekt das die Node-Schnittstelle implementiert.
evaluate(expression, contextNode, resolver, type, result)
Diese Funktion gibt ein Objekt zurück das die Object-Schnittstelle implementiert.
Der expression-Parameter ist vom Typ String.
Der contextNode-Parameter ist ein Objekt das die Node-Schnittstelle implementiert.
Der resolver-Parameter ist ein Objekt das die XPathNSResolver-Schnittstelle implementiert.
Der type Parameter ist vom Typ Number.
Der result-Parameter ist ein Objekt das die Object-Schnittstelle implementiert.
Diese Funktion bringt ein Objekt hervor {can raise an object} das die XPathException-Schnittstelle oder die DOMException-Schnittstelle implementiert.
Objekte, die die XPathExpression implementieren:
Funktionen von Objekten, die die XPathExpression-Schnittstelle implementieren:
evaluate(contextNode, type, result)
Diese Funktion gibt ein Objekt zurück das die Object-Schnittstelle implementiert.
Der contextNode-Parameter ist ein Objekt das die Node-Schnittstelle implementiert.
Der type-Parameter ist vom Typ Number.
Der result-Parameter ist ein Objekt das die Object-Schnittstelle implementiert.
Diese Funktion bringt ein Objekt hervor {can raise an object} das die XPathException-Schnittstelle oder die DOMException-Schnittstelle implementiert.
Objekte, die die XPathNSResolver-Schnittstelle implementieren:
Funktionen von Objekten, die die XPathNSResolver -Schnittstelle implementieren:
lookupNamespaceURI(prefix)
Diese Funktion gibt einen Wert vom Typ String zurück.
Der prefix-Parameter ist vom Typ String.
Eigenschaften der XPathResult-Konstruktor-Funktion:
XPathResult.ANY_TYPE
Der Wert der Konstante XPathResult.ANY_TYPE ist 0.
XPathResult.NUMBER_TYPE
Der Wert der Konstante XPathResult.NUMBER_TYPE ist 1.
XPathResult.STRING_TYPE
Der Wert der Konstante XPathResult.STRING_TYPE ist 2.
XPathResult.BOOLEAN_TYPE
Der Wert der Konstante XPathResult.BOOLEAN_TYPE ist 3.
XPathResult.UNORDERED_NODE_ITERATOR_TYPE
Der Wert der Konstante XPathResult.UNORDERED_NODE_ITERATOR_TYPE ist 4.
XPathResult.ORDERED_NODE_ITERATOR_TYPE
Der Wert der Konstante XPathResult.ORDERED_NODE_ITERATOR_TYPE ist 5.
XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE
Der Wert der Konstante XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE ist 6.
XPathResult.ORDERED_NODE_SNAPSHOT_TYPE
Der Wert der Konstante XPathResult.ORDERED_NODE_SNAPSHOT_TYPE ist 7.
XPathResult.ANY_UNORDERED_NODE_TYPE
Der Wert der Konstante XPathResult.ANY_UNORDERED_NODE_TYPE ist 8.
XPathResult.FIRST_ORDERED_NODE_TYPE
Der Wert der Konstante XPathResult.FIRST_ORDERED_NODE_TYPE ist 9.
Objekte, die die XPathResult-Schnittstelle implementieren:
Eigenschaften von Objekten, die die XPathResult-Schnittstelle implementieren:
resultType
Diese Nur-Lese-Eigenschaft ist vom Typ Number.
numberValue
Diese Nur-Lese-Eigenschaft ist vom Typ Number und kann ein Objekt hervorbringen {can raise an object}, das die XPathException-Schnittstelle zur Wiederherstellung {on retrieval} implementiert.
stringValue
Diese Nur-Lese-Eigenschaft ist vom Typ String und kann ein Objekt hervorbringen {can raise an object}, das die XPathException-Schnittstelle zur Wiederherstellung {on retrieval} implementiert.
booleanValue
Diese Nur-Lese-Eigenschaft ist vom Typ Boolean und kann ein Objekt hervorbringen {can raise an object}, das dieXPathException-Schnittstelle zur Wiederherstellung {on retrieval} implementiert.
singleNodeValue
Diese Nur-Lese-Eigenschaft ist ein Objekt, das die NodeSchnittstelle implementieren und ein Objekt hervorbringen kann {can raise an object}, das die XPathException-Schnittstelle zur Wiederherstellung {on retrieval} implementiert.
invalidIteratorState
Diese Nur-Lese-Eigenschaft ist vom Typ Boolean.
snapshotLength
Diese Nur-Lese-Eigenschaft ist vom Typ Number und kann ein Objekt hervorbringen {can raise an object}, das die XPathException-Schnittstelle zur Wiederherstellung {on retrieval} implementiert.
Funktionen von Objekten, die die XPathResult-Schnittstelle implementieren:
iterateNext()
Diese Funktion gibt ein Objekt zurück, das die Node-Schnittstelle implementiert.
Diese Funktion bringt ein Objekt hervor {can raise an object}, das die XPathException-Schnittstelle oder die DOMException-Schnittstelle implementiert.
snapshotItem(index)
Diese Funktion gibt ein Objekt zurück, das die Node-Schnittstelle implementiert.
Der index-Parameter ist vom Typ Number.
Diese Funktion bringt ein Objekt hervor {can raise an object}, das die XPathException-Schnittstelle implementiert.
Eigenschaften der XPathNamespace-Konstruktorfunktion:
XPathNamespace.XPATH_NAMESPACE_NODE
Der Wert der Konstante XPathNamespace.XPATH_NAMESPACE_NODE ist 13.
Objekte, die die XPathNamespace-Schnittstelle implementieren:
Objekte, die die XPathNamespace-Schnittstelle implementieren haben alle Eigenschaften und Funktionen der Node-Schnittstelle sowie die weiter unten definierten Eigenschaften und Funktionen.
Eigenschaften von Objekten, die die XPathNamespace-Schnittstelle implementieren:
ownerElement
Diese Nur-Lese-Eigenschaft ist ein Objekt, das die Element-Schnittstelle implementiert.

Hinweis: Der Parameter resolver der Methode XPathEvaluator.evaluate ist angegeben als ein Objekt, das die XPathNSResolver-Schnittstelle implementiert. ECMAScript-Anwender können auch neben dieser Methode eine Funktion verwenden, die einen Wert vom Typ String zurückgibt und einen String-Parameter anstelle des resolver-Parameters verwendet.

26.Februar 2004

Anhang D: Acknowledgements

Viele Leute haben zu den DOM-Spezifikationen (Level 1, 2 oder 3) einen Beitrag einschließlich der Mitglieder der DOM-Arbeitsgruppe und der DOM-Interessengruppe geleistet. Wir danken insbesondere folgenden Personen:

Andrew Clover, Andrew Watson (Object Management Group), Andy Heninger (IBM), Angel Diaz (IBM), Arnaud Le Hors (W3C and IBM), Ashok Malhotra (IBM and Microsoft), Ben Chang (Oracle), Bill Smith (Sun), Bill Shea (Merrill Lynch), Bob Sutor (IBM), Chris Lovett (Microsoft), Chris Wilson (Microsoft), David Brownell (Sun), David Ezell (Hewlett-Packard Company), David Singer (IBM), Dimitris Dimitriadis (Improve AB and invited expert), Don Park (invited), Elena Litani (IBM), Eric Vasilik (Microsoft), Gavin Nicol (INSO), Ian Jacobs (W3C), James Clark (invited), James Davidson (Sun), Jared Sorensen (Novell), Jeroen van Rotterdam (X-Hive Corporation), Joe Kesselman (IBM), Joe Lapp (webMethods), Joe Marini (Macromedia), Johnny Stenback (Netscape/AOL), Jon Ferraiolo (Adobe), Jonathan Marsh (Microsoft), Jonathan Robie (Texcel Research and Software AG), Kim Adamson-Sharpe (SoftQuad Software Inc.), Lauren Wood (SoftQuad Software Inc., former Chair), Laurence Cable (Sun), Mark Davis (IBM), Mark Scardina (Oracle), Martin Dürst (W3C), Mary Brady (NIST), Mick Goulish (Software AG), Mike Champion (Arbortext and Software AG), Miles Sabin (Cromwell Media), Patti Lutsky (Arbortext), Paul Grosso (Arbortext), Peter Sharpe (SoftQuad Software Inc.), Phil Karlton (Netscape), Philippe Le Hégaret (W3C, W3C Team Contact and former Chair), Ramesh Lekshmynarayanan (Merrill Lynch), Ray Whitmer (iMall, Excite@Home, and Netscape/AOL, Chair), Rezaur Rahman (Intel), Rich Rollman (Microsoft), Rick Gessner (Netscape), Rick Jelliffe (invited), Rob Relyea (Microsoft), Scott Isaacs (Microsoft), Sharon Adler (INSO), Steve Byrne (JavaSoft), Tim Bray (invited), Tim Yu (Oracle), Tom Pixley (Netscape/AOL), Vidur Apparao (Netscape), Vinod Anupam (Lucent).

Dank allen, die bei der Verbesserung der Spezifikation geholfen haben, indem sie Vorschläge und Korrekturen einreichten (Bitte halten Sie die Verbindung zu uns durch Ihre Beiträge!).

Ein besonderer Dank gilt den Personen, die die DOM Conformance Test Suites beisteuerten: Curt Arnold, Fred Drake, Mary Brady (NIST), Rick Rivello (NIST), Robert Clary (Netscape).

D.1 Ausgabesysteme {Production Systems}

Diese Spezifikation wurde in XML geschrieben. Die HTML-, OMG IDL-, Java- und ECMAScript-Bindungen wurden alle automatisch erzeugt.

Vielen Dank an Joe English, dem Autor von cost, das zur Grundlage der Ausgabe {basis for producing} von DOM Level 1 verwendet wurde. Dank auch an Gavin Nicol, er schrieb die Skripte, die unter cost laufen. Arnaud Le Hors and Philippe Le Hégaret pflegten {maintaine} die Skripte.

Nach DOM Level 1 verwendeten wir Xerces als Grundlage der DOM-Implementierung und möchten den Autoren dafür danken. Philippe Le Hégaret und Arnaud Le Hors schrieben die Java-Programme für die DOM-Anwendungen.

Vielen Dank auch an Jan Kärrman, dem Autor von html2ps, das wir zur Erzeugung der Postscript-Version dieser Spezifikation verwenden.

26.Februar 2004

Glossary

Herausgeber {Editors}:
Arnaud Le Hors, W3C
Robert S. Sutor, IBM Research (für DOM Level 1)

Verschiedene der folgenden Begriffsdefinitionen wurden von anderen W3C- oder Standarddokumenten übernommen oder sind modifizierte Definitionen ursprünglich einfacherer Definitionen anderer W3C- oder Standarddokumente. Für weitere Informationen siehe die Links, die zu den Definitionen führen.

API
Ein API ist eine Anwendungs-Programmierschnittstelle {Application Programming Interface} beziehungsweise eine Menge {set} von Funktionen und Methoden für den Zugriff auf verschiedene Funktionalitäten.
Dokumentelement {document element}
In einem Dokument {Document} gibt es nur ein einziges Dokumentelement. Dieser Elementknoten {element node} ist ein Kind des Document-Knotens. Siehe Wohlgeformte XML-Dokumente {Well-Formed XML Documents} in XML [XML 1.0].
Dokumentfolge {document order}
Es gibt eine Anordnung, Dokumentfolge {document order} genannt, die für alle Knoten im Dokument definiert ist und der Reihenfolge entspricht, in der das erste Zeichen jedes Knotens in der die XML-Repräsentation jedes Knotens in der XML-Repräsentation des Dokuments nach der Expansion der allgemeinen Entities auftritt. Also, das Dokumentelement {document element}-Knoten ist immer der erste Knoten. Elementknoten treten vor ihren Kindern auf. Die Dokumentfolge ordnet so Elementknoten entsprechend der Folge des Auftretens ihres Start-Tags in XML ein (nach der Expansion von Entities). Attributknoten eines Elements kommen nach dem Element, aber vor dessen Kindern vor. Die relative Anordnung der Attributknoten {untereinander} ist implementierungsabhängig.
Element {element}
Jedes Dokument enthält ein oder mehrere {andere} Elemente; die Außengrenzen von Elementen sind entweder durch Start-Tags oder Ende-Tags begrenzt, oder bei leeren Elementen durch ein Leerelement-Tag. Jedes Element hat einen Typ der durch einen Namen bestimmt ist und kann eine Menge von Attributen haben. Jedes Attribut hat einen Namen und einen Wert. Siehe Logische Strukturen {Logical Structures} in XML [ XML 1.0].
Logisch angrenzende Textknoten {logically-adjacent text nodes}
Logisch angrenzende Textknoten Logically-adjacent text nodes sind Text- oder CDATASection-Knoten, die man entsprechend der Dokumentfolge {document order} nacheinander finden kann ohne in Element-, Comment-, oder ProcessingInstruction-Knoten einzutreten, diese zu verlassen oder zu übergehen.
sofort verfügbar; aktuell {live}
Ein Objekt ist aktuell {live}, wenn irgendeine Änderung der darunter liegenden Dokumentstruktur im Objekt widerspiegelt wird.
Modell {model}
Ein Modell {model} ist die aktuelle Datenrepräsentation für die gültigen Informationen. Beispiele sind das Strukturmodell und das Stylmodell, das die geparste Struktur und die Stylinformationen, die mit dem Dokument verbunden sind, repräsentiert. Das Modell kann ein Baum, eine gerichteter Graph oder etwas passend anderes sein.
Namensraumpräfix {namespace prefix}
Ein Namensraumpräfix {namespace prefix} ist eine Zeichenkette, die einen Element- oder Attributnamen mit einem Namensraum-URI {namespace URI} in XML verbindet. Siehe Namensraumpräfix {namespace prefix} in den Namensräumen von XML [XML-Namensräume {XML Namespaces}].
Namensraum-URI {namespace URI}
Ein Namensraum-URI {namespace URI} ist ein URI, das einen XML-Namensraum eindeutig kennzeichnet. Dies ist gleichbedeutend mit dem Namen von Namensräumen in XML [XML-Namensräume {XML Namespaces}]. Siehe auch die Abschnitte 1.3.2 " DOM URIs" und 1.3.3 " XML Namespaces", die das Handling und den Vergleich von URIs und Namensraum-URIs in den DOM-APIs betrachten.
Nur-Lese-Knoten {read only node}
Ein Nur-Lese-Knoten {read only node} ist ein nicht veränderbarer Knoten. Das schließt die Liste seiner Kinder, seines Inhalts, und seiner Attribute ein, wenn der Knoten ein Element ist, und die in keiner Weise verändert werden können. Allerdings kann ein Nur-Lese-Knoten unter Umständen verschoben werden, sofern er nicht selbst zum Inhalt eines anderen Nur-Lese-Knotens gehört.

26.Februar 2004

Referenzen

Zur letzten Version irgendeiner W3C-Spezifikation konsultieren Sie bitte die Liste der Technischen Berichte des W3C {W3C Technical Reports}, verfügbar unter http://www.w3.org/TR.

F.1 Normative Referenzen

[DOM Level 2 Core]
Document Object Model Level 2 Core Specification, A. Le Hors, et al., Herausgebner. World Wide Web Consortium, 13.November 2000. Die betrachtete Version der Empfehlung des DOM Level 2 Core ist http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113. Die letzte Version des DOM Level 2 Core ist verfügbar unter http://www.w3.org/TR/DOM-Level-2-Core.
[ECMAScript]
ECMAScript Language Specification, Dritte Ausgabe. European Computer Manufacturers Association, Standard ECMA-262, December 1999. Die betrachtete Version der ECMAScript-Sprache ist verfügbar bei http://www.ecma-international.org/.
[Java]
The Java Language Specification, J. Gosling, B. Joy, and G. Steele, Autoren. Addison-Wesley, September 1996. Verfügbar unter http://java.sun.com/docs/books/jls
[OMG IDL]
"OMG IDL Syntax and Semantics" definiert in The Common Object Request Broker: Architecture and Specification, version 2, Object Management Group. Die letzte Version der CORBA Version 2.0 ist verfügbar unter http://www.omg.org/technology/documents/formal/corba_2.htm.
[XML Information Set]
XML Information Set (Zweite Ausgabe), J. Cowan and R. Tobin, Herausgeber. World Wide Web Consortium, 4.Februar 2004, revidiert am 24.Oktober 2001. Die betrachtete Version der Empfehlung zu XML 1.0 ist http://www.w3.org/TR/2004/REC-xml-infoset-20040204. Die letzte Version vom XML Information Set ist verfügbar unter http://www.w3.org/TR/xml-infoset.
[XPath 1.0]
XML Path Language (XPath) Version 1.0, J. Clark and S. DeRose, Herausgeber. World Wide Web Consortium, 16.November 1999. Die betrachtete Version der XPath-1.0-Empfehlung ist http://www.w3.org/TR/1999/REC-xpath-19991116. Die letzte Version von XPath 1.0 ist verfügbar unter http://www.w3.org/TR/xpath.

F.2 Informative Referenzen

[DOM Level 3 Core]
Document Object Model Level 3 Core Specification, A. Le Hors, et al., Herausgeber. World Wide Web Consortium, Februar 2004. Die betrachtete Version des Dokuments "Object Model Level 3 Core specification" ist http://www.w3.org/TR/2004/PR-DOM-Level-3-Core-20040205. Die letzte Version von DOM Level 3 Core ist verfügbar unter http://www.w3.org/TR/DOM-Level-3-Core.
[XML 1.0]
Extensible Markup Language (XML) 1.0 (Dritte Ausgabe), T. Bray, J. Paoli, C. M. Sperberg-McQueen, E. Maler, and F. Yergeau, Herausgeber. World Wide Web Consortium, 4.Februar 2004, revidiert am 10.Februar 1998 und am 6.Oktober 2000. Die betrachtete Version der XML 1.0 Recommendation ist http://www.w3.org/TR/2004/REC-xml-20040204. Die letzte Version von XML 1.0 ist verfügbar unter http://www.w3.org/TR/REC-xml.
[XML Namespaces]
Namespaces in XML, T. Bray, D. Hollander, and A. Layman, Herausgeber. World Wide Web Consortium, 14.Januar 1999. Die betrachtete Version der "Namespaces in XML"-Empfehlung ist http://www.w3.org/TR/1999/REC-xml-names-19990114. Die letzte Version von "Namespaces in XML" ist verfügbar unter http://www.w3.org/TR/REC-xml-names.

26.Februar 2004

Index

ANY_TYPE ANY_UNORDERED_NODE_TYPE API 1, 2
 
BOOLEAN_TYPE booleanValue
 
createExpression createNSResolver
 
Dokumentelement {document element} Dokumentfolge {document order} 1, 2 DOM Level 2 Core 1, 2, 3
DOM Level 3 Core 1, 2, 3
 
ECMAScript Element {element} 1, 2, 3 evaluate 1, 2
 
FIRST_ORDERED_NODE_TYPE
 
INVALID_EXPRESSION_ERR invalidIteratorState iterateNext
 
Java
 
sofort verfügbar; aktuell {live} 1, 2 logically-adjacent text nodes 1, 2 lookupNamespaceURI
 
Modell {model} 1, 2
 
Namensraum-Präfix {namespace prefix} 1, 2, 3, 4 Namensraum-URI {namespace URI} 1, 2, 3, 4 NUMBER_TYPE
numberValue
 
OMG IDL ORDERED_NODE_ITERATOR_TYPE ORDERED_NODE_SNAPSHOT_TYPE
ownerElement
 
Nur-Lese-Knoten {read only node} 1, 2 resultType
 
singleNodeValue snapshotItem snapshotLength
STRING_TYPE stringValue
 
TYPE_ERR
 
UNORDERED_NODE_ITERATOR_TYPE UNORDERED_NODE_SNAPSHOT_TYPE
 
XML 1.0 1, 2, 3 XML-Informations-Set {XML Information Set} 1, 2 XML-Namensräume {XML Namespaces} 1, 2, 3
XPath 1.0 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 XPATH_NAMESPACE_NODE XPathEvaluator
XPathException XPathExpression XPathNamespace
XPathNSResolver XPathResult