Die einzige normative Version ist die englische Version unter:
http://www.w3.org/TR/2009/REC-xmlbase-20090128/.
Diese Übersetzung ist zu finden unter:
http://www.schumacher-netz.de/TR/2009/REC-xmlbase-20090128.de.html.
Diese Übersetzung kann Fehler enthalten. Kommentare oder Korrekturvorschläge zu dieser deutschen Übersetzung senden Sie dem Übersetzer bitte per E-Mail.
Weitere Übersetzungen zum Thema XML finden Sie auf den Seiten des Übersetzers.
Übersetzer: Stefan Schumacher (www.schumacher-netz.de).
Informationen zum
Urheberrecht.
Bitte konsultieren Sie die Errata für dieses Dokument, die normative Korrekturen enthalten könnten.
Schauen Sie auch nach Übersetzungen.
Dieses Dokument ist auch in diesen nicht normativen Formaten erhältlich: HTML mit Anzeige der Veränderungen und XML.
Copyright © 2009 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C liability, trademark and document use rules apply.
Dieses Dokument beschreibt ein Verfahren, ähnlich zu dem in HTML BASE, um Base-URIs für Teile von XML-Dokumenten zu definieren.
Dieser Abschnitt beschreibt den Status dieses Dokuments zur Zeit seiner Veröffentlichung. Andere Dokumente könnten dieses Dokument ersetzen. Eine Liste der aktuellen W3C-Veröffentlichungen und die aktuelle Revision dieses Technischen Berichts kann im Index der Technischen Berichte des W3C unter http://www.w3.org/TR/ gefunden werden.
Dieses Dokument wurde von der W3C-Arbeitsgruppe XML Core als Teil der W3C XML Activity erstellt. Die englische Version dieser Spezifikation ist die einzige normative Version. Konsultieren Sie jedoch http://www.w3.org/2003/03/Translations/byTechnology?technology=xmlbase für Übersetzungen dieses Dokuments.
Dieses Dokument ist eine Überarbeitete Empfehlung des W3C. Es ersetzt die vorherige Empfehlung des W3C vom 27. Juni 2001. Diese zweite Auflage ist keine neue Version von XML Base; ihr Zweck ist die Klärung einiger Problemstellungen, die seit der Veröffentlichung der ersten Version aufgetaucht sind. Einige dieser wurden zuerst als eigenständige Errata veröffentlicht ( http://www.w3.org/2001/06/xmlbase-errata), andere wurden in einem öffentlichen Editorenentwurf im November 2006 (http://www.w3.org/XML/2006/11/xmlbase-2e/Overview.html), und eine PER im Dezember 2006 (http://www.w3.org/TR/2006/PER-xmlbase-20061220/) veröffentlicht. Die Veränderungen werden in einem Anhang aufgezählt.
Bitte berichten Sie Fehler in diesem Dokument an die öffentliche Mailing-Liste www-xml-linking-comments@w3.org; öffentliche Archive sind verfügbar.
Es gibt keinen Implementierungsbericht und keine Test-Suite für diese Spezifikation, aber es gibt ein Dokument, das die Methoden zur Überprüfung der Konformität zu XML Base beschreibt.
Dieses Dokument wurde von W3C-Mitgliedern, von Software-Entwicklern und von anderen W3C-Gruppen und Interessierten überprüft und wurde vom Direktor als eine W3C-Empfehlung anerkannt. Es ist ein stabiles Dokument und kann als Referenz verwendet oder von anderen Dokumenten zitiert werden. Die Rolle des W3C bei der Erstellung der Empfehlung ist, Aufmerksamkeit auf die Spezifikation zu lenken und ihre weitreichende Anwendung zu fördern. Dies verbessert die Funktionalität und die Interoperabilität des Internets.
Für dieses Dokument ist die CPP vom 24. Januar 2002 maßgeblich wie von der W3C Patent Policy Transition Procedure berichtigt. Das W3C unterhält eine öffentliche Liste aller Patentveröffentlichungen, die in Verbindung mit den Ergebnissen der Gruppe gemacht wurden; die Seite enthält ebenfalls Anweisungen für die Veröffentlichung eines Patents. Ein Individuum, das tatsächliche Kenntnis über ein Patent hat, das nach Glauben des Individuums Essentielle Forderungen enthält, muss diese Informationen in Übereinstimmung mit Abschnitt 6 der W3C Patent Policy offenlegen.
1 Einleitung
2 Terminologie
3 Das Attribut xml:base
3.1 Kodieren und Ersetzen in URI-Verweisen
4 Relative URIs auflösen
4.1 Beziehung zu RFC 3986
4.2 Feinheit von Base-URI-Informationen
4.3 URIs mit Base-URIs vervollständigen
4.4 Interpretation von Verweisen im gleichen Dokument
5 Konformität
A Quellen
B Quellen (nicht normativ)
C Berührungspunkte mit anderen Standards (nicht normativ)
D Veränderungen seit der ersten Auflage (nicht normativ)
Die XML Linking Language [XLink] definiert Konstrukte
der Extensible Markup Language (XML) 1.0 [XML], um Verweise
zwischen Quellen zu beschreiben. Eine der beschriebenen Anforderungen an XLink
ist, HTML [HTML 4.01]-Verweiskonstrukte in allgemeiner
Form zu unterstützen. Das HTML-Element base
ist ein solches
Konstrukt, das die XLink-Arbeitsgruppe in Erwägung gezogen hat.
base
erlaubt Autoren explizit, einen Base-URI für ein
Dokument anzugeben, um relative URIs in Verweisen zu externen Grafiken, Applets,
formularverarbeitenden Programmen, Style Sheets und so weiter aufzulösen.
Dieses Dokument beschreibt einen Mechanismus, um Base-URI-Dienste für
XLink bereitzustellen, jedoch als eine modulare Spezifikation, so dass
andere XML-Anwendungen, die von der zusätzlichen Kontrolle über relative
URIs profitieren, aber nicht auf XLink aufgebaut sind, ebenfalls Gebrauch davon
machen können. Die Syntax besteht aus einem einzelnen XML-Attribut namens
xml:base
.
Der Einsatz von XML Base erfolgt durch normative Verweise aus neuen
Spezifikationen, zum Beispiel XLink und XML Infoset. Anwendungen und
Spezifikationen, die auf diesen neuen Technologien aufbauen, werden XML Base
von Hause aus unterstützen. Das Verhalten von
xml:base
-Attributen in Anwendungen, die auf Spezifikationen
basieren, die keinen direkten oder indirekten normativen Verweis zu XML Base
haben, ist nicht definiert.
Diese Spezifikation versucht nicht anzugeben, welche Zeichenketten in einem Dokument als URIs zu interpretieren sind. Das liegt in der Verantwortlichkeit eines jeden XML-Vokabulars. Die Frage, die durch diese Spezifikation gestellt wird, ist: Ist ein relativer URI in einem XML-Dokument gegeben, gegen welchen Base-URI wird er dann aufgelöst?
Es wird erwartet, dass ein zukünftiges RFC-Dokument für XML-Medientypen XML-Base als den Mechanismus für den Einsatz von Base-URIs in den Medientypen angibt, die es definiert.
[Definition: Die Schlüsselworte muss, darf nicht, erforderlich, sollen, sollen nicht, sollten, sollten nicht, empfohlen, kann, und optional in dieser Spezifikation, sind zu interpretieren wie in [RFC 2119] beschrieben.]
Die Begriffe Base-URI und relativer URI werden in dieser Spezifikation verwendet, wie sie in [RFC 3986] definiert sind.
xml:base
Das Attribut xml:base
kann in XML-Dokumente
eingefügt werden, um einen Base-URI anzugeben, der sich vom Base-URI
des Dokuments oder der externen Entität unterscheidet. Der Wert dieses
Attributs wird interpretiert als ein Legacy Extended IRI (LEIRI)
wie in der W3C-Anmerkung "Legacy extended IRIs for XML resource
identification" [LEIRI] definiert.
In Prozessoren, die Namensräume berücksichtigen, ist das
Präfix "xml" an den Namensraum
http://www.w3.org/XML/1998/namespace
gebunden wie in
Namensräume in XML [XML Names] beschrieben.
Beachten Sie, dass xml:base
immer noch von Prozessoren verwendet
werden kann, die Namensräume nicht berücksichtigen.
Ein Beispiel von xml:base
in einem einfachen Dokument, das
XLinks enthält, folgt. XLink verweist normativ auf XML Base zur
Interpretation von relativen URI-Verweisen in
xlink:href
-Attributen.
<?xml version="1.0"?> <doc xml:base="http://example.org/today/" xmlns:xlink="http://www.w3.org/1999/xlink"> <head> <title>Virtual Library</title> </head> <body> <paragraph>See <link xlink:type="simple" xlink:href="new.xml">what's new</link>!</paragraph> <paragraph>Check out the hot picks of the day!</paragraph> <olist xml:base="/hotpicks/"> <item> <link xlink:type="simple" xlink:href="pick1.xml">Hot Pick #1</link> </item> <item> <link xlink:type="simple" xlink:href="pick2.xml">Hot Pick #2</link> </item> <item> <link xlink:type="simple" xlink:href="pick3.xml">Hot Pick #3</link> </item> </olist> </body> </doc>
Die URIs in diesem Bespiel lösen in volle URIs wie folgt auf:
"what's new" löst auf in den URI "http://example.org/today/new.xml"
"Hot Pick #1" löst auf in den URI "http://example.org/hotpicks/pick1.xml"
"Hot Pick #2" löst auf in den URI "http://example.org/hotpicks/pick2.xml"
"Hot Pick #3" löst auf in den URI "http://example.org/hotpicks/pick3.xml"
Anmerkung:
Diese Spezifikation gibt dem Attribut xml:base keinen speziellen Status, der die XML-Validität betrifft. In einem gültigen Dokument muss das Attribut in der DTD deklariert sein, und ähnliche Betrachtungen gelten für andere Schemasprachen.
Der Wert eines xml:base
-Attributs ist ein Legacy Extended
IRI (LEIRI) und kann Zeichen enthalten, die in URIs nicht erlaubt sind.
(Jedoch sind einige Zeichen, die in LEIRIs erlaubt sind, keine gültigen
XML-Zeichen und können deshalb nicht in xml:base
-Werten
erscheinen.)
In Übereinstimmung mit dem Prinzip, dass die Prozent-Kodierung so spät wie möglich in der Verarbeitungskette auftreten muss, sollten Anwendungen, die Zugang zu dem Base-URI eines Elements geben, den Wert ohne Ersetzen berechnen und zurückgeben.
Im Beispiel unten sollte der Base-URI des Elements e2
als
"http://example.org/wine/rosé" zurückgegeben werden.
<?xml version="1.0"?> <e1 xml:base="http://example.org/wine/"> <e2 xml:base="rosé"/> </e1>
RFC 3986 [RFC 3986] gibt an, wie Base-URI-Informatioenen in ein Dokument eingebettet werden. Die Regeln zur Bestimmung des Base-URI können wie folgt (höchste bis niedrigste Priorität) zusammengefasst werden:
Der Base-URI ist im Inhalt des Dokuments eingebettet.
Der Base-URI ist der der umschließenden Entität (Nachricht, Dokument oder keiner).
Der Base-URI ist der URI, der zum Empfang der Entität benutzt wurde.
Der Base-URI wird im Rahmen der Anwendung definiert.
Anmerkung:
Der Begriff "Entität" (engl. entity) in den Punkten #2 und #3 oben verwendet die Bedeutung des Begriffs, die aus RFC 3986 hervorgeht. Andernorts in dieser Spezifikation wird der Begriff "Entität" in seiner XML-Bedeutung verwendet.
Dieses Dokument gibt die Details für Regel #1 an, für die Einbettung von Base-URI-Informationen im besonderen Fall von XML-Dokumenten.
Relative URIs, die in einem XML-Dokument erscheinen, werden immer entweder relativ zu einem Element, einer Dokumententität oder einer externen Entität aufgelöst. Es gibt keine Vorschrift für eine feinere Auflösung wie zum Beispiel zur Base-Information eines Attributs, eines Zeichens oder einer Entität. Weder von internen Entitäten, ob in einer internen Untermenge oder einer externen DTD deklariert, noch von freistehendem Text (Text, der nicht von einem Element eingeschlossen wird) in einer externen Entität wird erwartet, einen Base-URI anzugeben, der sich vom Base-URI im Geltungsbereich des Entitätverweises unterscheidet.
Der Base-URI einer Dokumententiät oder einer externen Entität wird von den Regeln in RFC 3986 bestimmt, das bedeutet, der Base-URI ist der URI, der verwendet wird, um die Dokumententität oder die externe Entität zu empfangen.
Der Base-URI eines Elements ist:
der Base-URI, angegeben durch das Attribut xml:base
eines
Elements, sofern einer existiert, ansonsten
der Base-URI des Elternelements des Elements in der Dokument-Entität oder externen Entität, sofern einer existiert, ansonsten
der Base-URI der Dokumententität oder externen Entität, die das Element enthält.
Anmerkung:
Es folgt, dass der Base-URI, der durch ein xml:base
-Attribut
angegeben wird, an Nachfahre-Elemente innerhalb der gleichen Entität
vererbt wird, bis ein anderes Element mit dem Attribut xml:base
angetroffen wird.
Der Base-URI eines Elements, das ein xml:base
-Attribut mit einem
Wert enthält, der kein gültiger Legacy Extended IRI ist, ist
anwendungsabhängig.
Der Base-URI, der zu einem gegebenen relativen URI in einem XML-Dokument gehört, wird wie folgt ermittelt:
Der Base-URI für einen URI-Verweis, der im Textinhalt erscheint, ist der Base-URI des Elements, das den Text enthält.
Der Base-URI für einen URI-Verweis, der in einem
xml:base
-Attribut erscheint, ist der Base-URI des
Elternelements des Elements, das dieses xml:base
-Attribut
enthält, sofern eines innerhalb der Dokument-Entität oder
der externen Entität existiert, ansonsten der Base-URI der
Dokumententität oder der externen Entität, die das Element
enthält.
Der Base-URI für einen URI-Verweis, der in irgendeinem anderen Attributwert erscheint, eingeschlossen voreingestellte Attributwerte, ist der Base-URI des Elements, welches das Attribut enthält.
Der Base-URI für einen URI-Verweis, der im Inhalt einer Verarbeitungsanweisung erscheint, ist der Base-URI des Elternelements der Verarbeitungsanweisung, sofern einer innerhalb der Dokumententität oder der externen Entität existiert, ansonsten der Base-URI der Dokumententität oder externen Entität, die die Verarbeitungsanweisung enthält.
Anmerkung:
Die Gegenwart von xml:base
-Attributen kann zu
unerwarteten Ergebnissen führen, wenn der Attributwert nicht
direkt in der XML-Dokumententität, sondern über ein
voreingestelltes Attribut angegeben wird. So eine Deklaration in einer
externen Entität könnte
zum Beispiel von Software, die auf nicht validierenden
XML-Prozessoren basiert, überlesen werden. Attribute durch einen
externen Mechanismus wie XML-Schema voreinzustellen, kann ebenfalls zu
unerwarteten Ergebnissen führen; auch wenn ein validierender Prozessor
von der Anwendung verwendet wird, kann die Zugabe von
voreingestellten Attributen, nachfolgend die Erzeugung von Infosets, dazu
führen, dass xml:base
-Attribute nicht in Synchronisation
mit der Infoset-Eigenschaft [base URI] stehen. Aus diesen Gründen
sollten
xml:base-Werte entweder direkt in der XML-Dokumentinstanz oder über
ein voreingestelltes Attribut, das in der internen Untermenge der DTD
deklariert ist, angegeben werden.
RFC 3986 definiert bestimmte relative URI-Verweise, insbesondere die leere
Zeichenkette und die der Form #fragment
, als Verweise im
gleichen Dokument. Die Auflösung von Verweisen im gleichen
Dokument wird besonders behandelt. Jedoch schließt ihr Gebrauch
als Wert eines xml:base
-Attributs die Auflösung nicht ein, und
XML Base-Prozessoren sollten sie in der üblichen Weise auflösen.
Insbesondere setzt xml:base=""
den Base-URI nicht auf den des
beinhaltenden Dokuments zurück.
Anmerkung:
Einige der bestehenden Prozessoren interpretieren diese
xml:base
-Werte jedoch in der Weise, dass der Base-URI
auf den des beinhaltenden Dokuments zurückgesetzt wird, deshalb
wird von der Verwendung solcher Werte dringendst abgeraten.
Die veröffentlichten Errata wurden eingearbeitet (siehe http://www.w3.org/2001/06/xmlbase-errata);
Die Definition von URI-Verweisen wurde von RFC2396 auf 3986 geändert;
Das xml:base-Attribut ist nun beschrieben als ein Legacy Extended IRI, allerdings verändert dies nicht seine Syntax (die PER vom Dezember 2006 verwedete den Begriff "XML Resource Identifier", der in einer XLink-Überarbeitung zu definieren war, aber dieser Ansatz wurde von der Definition des LEIRI in der W3C-Anmerkung ersetzt);
Implementationen werden nun angehalten, Base-URIs ohne Ersetzen der nicht URI-Zeichen zurückzugeben;
Die Bedeutung von xml:base=""
und
xml:base="#frag"
wurden deutlich gemacht;
Der erwartete Verweis auf XML Base in dem kommenden XML Media Types-RFC (Nachfolger von 3023) wurde notiert;
Es wurde klargestellt, dass normale Gültigkeitsregeln für
das xml:base
-Attribut gelten;
Der nicht mehr zeitgemäße Anhang, der die Auswirkungen auf andere Standards beschreibt, wurde entfernt;
Zahlreiche kleinere redaktionelle Veränderungen wurden vorgenommen.