Dit document is een Nederlandse vertaling van een Engelstalig document (http://www.w3.org/TR/xmlbase).
Deze vertaling werd gemaakt door Andy Camps, vervolgens nagelezen door Ruud Steltenpool en gecorrigeerd door Andy Camps, maar kan nog enkele fouten bevatten. In geval van twijfel verwijzen wij naar de officiële Engelstalige versie.
|
Copyright © 2001 W3C® (MIT, INRIA, Keio), Alle Rechten Voorbehouden. W3C verantwoordelijkheid, handelsmerk, document gebruik en software licentie regels gelden.
Dit document stelt een middel ter beschikking dat lijkt op HTML BASE, voor de definitie van base URI's voor delen van XML documenten.
Dit document is nagekeken door W3C Leden en andere geïnteresseerden en is bekrachtigd door de Directeur als een W3C Aanbeveling. Het is een stabiel document en kan gebruikt worden als referentiewerk of geciteerd worden als een normatieve referentie vanuit een ander document. De rol van W3C in het maken van deze Aanbeveling is de aandacht vestigen op de specificatie en de wereldwijde inzet promoten. Dit vergroot de functionaliteit en interoperabiliteit van het Web.
Dit document is gemaakt door de W3C XML Linking Working Group als deel van de XML Activiteit in het W3C Architecture Domain. Raadpleeg voor achtergrondinformatie over dit werk de XML Activity Statement.
Meldt mogelijke fouten in dit document aan de publieke email lijst www-xml-linking-comments@w3.org (archief op http://lists.w3.org/Archives/Public/www-xml-linking-comments/). Alle bevestigde fouten zullen gedocumenteerd worden in een erratum dat beschikbaar is op http://www.w3.org/2001/06/xmlbase-errata.
Meldt mogelijke fouten in dit document aan andy.camps@playgarden.com. Alle bevestigde fouten zullen zo snel mogelijk aangepast worden in de online versie van de vertaling.
De Engelse versie van deze specificatie is de enige normatieve versie. Informatie over vertalingen van dit document is beschikbaar op http://www.w3.org/2001/06/xmlbase-translations.
Een lijst van de huidige W3C Aanbevelingen en andere technische documenten kan gevonden worden op http://www.w3.org/TR/.
1 Inleiding
2 Terminologie
3 xml:base Attribuut
3.1 URI Reference Encoding en Escaping
4 Oplossen van Relatieve URI's
4.1 Relatie tot RFC 2396
4.2 Granulariteit van base URI informatie
4.3 Koppelen van URI's met base URI's
5 Conformiteit
A Referenties
B Referenties (Niet-Normatief)
C Impact op andere Standaarden (Niet-Normatief)
De XML Linking Language [XLink] definieert Extensible Markup Language (XML) 1.0 [XML] constructs om links tussen bronnen te omschrijven. Eén van de vastgelegde vereisten op XLink is de ondersteuning van HTML [HTML 4.01] linking constructs op een generieke manier. Het HTML BASE element is zo een construct die de XLink Working Group heeft beschouwd. BASE laat auteurs toe om expliciet een document base URI te specificeren met als doel de oplossing van relatieve URI's in links naar externe figuren, applets, formulier-verwerkingsprogramma's, stylesheets enzovoort.
Dit document omschrijft een mechanisme waarmee base URI diensten naar XLink worden voorzien. Dit is gedaan als een modulaire specificatie zodat andere XML toepassingen die voordeel hebben bij aanvullende controle over relatieve URI's, maar niet bouwen op XLink, ook gebruik kunnen maken van dit systeem. De syntax bestaat uit een enkel XML attribuut: xml:base
.
XML Base wordt ingezet via normatieve referentie door nieuwe specificaties zoals bijvoorbeeld XLink en de XML Infoset. Toepassingen en specificaties die bouwen op deze nieuwe technologiën zullen op een natuurlijk manier XML Base ondersteunen. Het gedrag van xml:base
attributen in toepassingen gebaseerd op specificaties die geen directe of indirecte normatieve referentie naar XML Base hebben is ongedefinieerd.
[Definitie: De sleutelwoorden moet, moet niet, vereist, zal, zal niet, zou, zou niet, aanbevolen, kan, en optioneel in deze specificatie dienen geïnterpreteerd te worden volgens [IETF RFC 2119].]
De begrippen base URI en relatieve URI die gebruikt worden in deze specificatie volgen de definitie in [IETF RFC 2396].
xml:base
AttribuutHet xml:base
attribuut kan ingevoegd worden in XML documents om een andere base URI te specificeren dan de base URI van het document of externe entiteit. De waarde van dit attribuut wordt na verwerking volgens deel 3.1 geïnterpreteerd als een URI Referentie zoals gedefinieerd in RFC 2396 [IETF RFC 2396].
In namespace-bewuste XML processors, wordt het "xml" voorvoegsel gebonden aan de namespace naam http://www.w3.org/XML/1998/namespace
zoals omschreven in Namespaces in XML [XML Names]. Merk op dat xml:base
nog steeds gebruikt kan worden door niet-namespace-bewuste processors.
Een voorbeeld van xml:base
in een eenvoudig document dat XLinks bevat volgt hierna. XLink verwijst normaal naar XML Base voor de interpretatie van relatieve URI verwijzingen in xlink:href
attributen.
<?xml version="1.0"?> <doc xml:base="http://voorbeeld.org/vandaag/" xmlns:xlink="http://www.w3.org/1999/xlink"> <head> <title>Virtuele Bibliotheek</title> </head> <body> <paragraph>Zie <link xlink:type="simple" xlink:href="nieuw.xml">de nieuwe dingen</link>!</paragraph> <paragraph>Ga kijken wat de aanbiedingen zijn!</paragraph> <olist xml:base="/aanbiedingen/"> <item> <link xlink:type="simple" xlink:href="aanbieding1.xml">Aanbieding #1</link> </item> <item> <link xlink:type="simple" xlink:href="aanbieding2.xml">Aanbieding #2</link> </item> <item> <link xlink:type="simple" xlink:href="aanbieding3.xml">Aanbieding #3</link> </item> </olist> </body> </doc> |
De URI's in dit voorbeeld verwijzen naar de volledige URI's op de volgende manier:
"de nieuwe dingen" verwijst naar de URI "http://voorbeeld.org/vandaag/nieuw.xml"
"Aanbieding #1" verwijst naar de URI "http://voorbeeld.org/aanbiedingen/aanbieding1.xml"
"Aanbieding #2" verwijst naar de URI "http://voorbeeld.org/aanbiedingen/aanbieding2.xml"
"Aanbieding #3" verwijst naar de URI "http://voorbeeld.org/aanbiedingen/aanbieding3.xml"
De set van tekens die toegestaan zijn in xml:base
attributen is dezelfde als voor XML, namelijk [Unicode]. Sommige Unicode tekens zijn echter niet toegestaan in URI referenties waardoor processoren deze tekens moeten encoderen en escapen om een geldige URI referentie van de attribuutwaarde te bekomen.
De verboden tekens bevatten alle niet-ASCII tekens, plus de uitgesloten tekens opgesomd in deel 2.4 van [IETF RFC 2396], behalve het nummerteken (#) en procentteken (%) en de rechthoekige haakjes die opnieuw toegestaan zijn in [IETF RFC 2732]. Verboden tekens moeten als volgt ge-escaped worden:
Elk verboden teken wordt omgezet in UTF-8 [IETF RFC 2279] als één of meer bytes.
Alle bytes die overeenkomen met een verboden teken worden ge-escaped met het URI escaping mechanisme (hetgeen wil zeggen: omgezet tot %HH, waar HH de hexadecimale notatie van de bytewaarde is).
Het originele teken wordt vervangen door de resulterende tekenreeks.
RFC 2396 [IETF RFC 2396] zorgt ervoor dat base URI informatie opgenomen kan worden in een document. De regels om de base URI te bepalen kunnen als volgt (van hoogste naar laagste prioriteit) samengevat worden:
De base URI wordt opgenomen in de inhoud van het document.
De base URI is van toepassing op de ingekapselde entiteit (boodschap, document, of geen).
De base URI is de URI gebruikt om de entiteit terug te vinden.
De base URI wordt gedefinieerd door de context van de toepassing.
Opmerking:
De term "entiteit" in punten #2 en #3 hierboven gebruiken de RFC 2396 betekenis van de term. Elders in dit document wijst de term "entiteit" naar het gebruik volgens de XML betekenis.
Dit document legt de klemtoon op regel #1 voor opname van base URI informatie wanneer het gaat over XML documenten.
Relatieve URI's die verschijnen in een XML document worden altijd opgelost relatief aan een element, een document entiteit of een externe entiteit. Er is geen voorwaarde voor fijnere granulariteit zoals per-attribuut, per-teken of per-entiteit base informatie. Noch interne entiteiten, gedeclareerd in de interne subset of in een externe DTD, noch vrijstaande tekst (tekst niet omsloten in een element) in een externe entiteit kunnen een base URI scheiden van de base URI waarnaar gekeken wordt voor deze entiteitsverwijzing.
De base URI van een document entiteit of een externe entiteit wordt bepaald door RFC 2396 regels, namelijk dat de base URI de URI is die gebruikt wordt om de document entiteit of externe entiteit op te vragen.
De base URI van een element is:
de base URI gespecificeerd door een xml:base
attribuut op het element, als er één bestaat, anders
de base URI van het ouder (parent) element van het element binnen het document of externe entiteit, als er één bestaat, anders
de base URI van de document entiteit of externe entiteit die het element bevat.
De base URI die overeenkomt met een relatieve URI die verschijnt in een XML document wordt als volgt bepaald:
De base URI voor een URI verwijzing die verschijnt in tekstinhoud is de base URI van het element dat de tekst omvat.
De base URI voor een URI verwijzing die verschijnt in een xml:base
attribuut is de base URI van het ouder (parent) element van het element dat het xml:base
attribuut draagt, als er één bestaat in die document entiteit of externe entiteit. In het andere geval is de base URI deze van de document entiteit of externe entiteit die het element omvat.
De base URI voor een URI verwijzing die verschijnt in elke andere attribuutwaarde, inclusief standaard attribuutwaarden, is de base URI van het element dat het attribuut draagt.
De base URI voor een URI verwijzing die verschijnt in de inhoud van een verwerkingsinstructie is de base URI van het ouder (parent) element van de verwerkingsinstructie, als er één bestaat binnen de document entiteit of externe entiteit. Als dit niet het geval is zal het de base URI van de document entiteit of externe entiteit die de verwerkingsinstructie bevat zijn.
Opmerking:
De aanwezigheid van xml:base
attributen kan leiden tot onverwachte resultaten wanneer de attribuutwaarde die voorzien is, niet direct in de XML document entiteit, maar via een standaard attribuut gedeclareerd is in een externe entiteit. Zulke declaraties worden mogelijk niet gelezen door software welke gebaseerd is op een niet-validerende XML processor. Veel XML toepassingen slagen er niet in om validerende processors te vereisen. Voor correcte werking met zulke toepassingen zouden xml:base
waarden voorzien moeten worden via directe of via standaard attributen gedeclareerd in de interne subset van de DTD.
XML Base definieert een mechanisme voor opname van base URI informatie binnen een XML document. Het definieert geen mechanisme om te herkennen welke inhoud of attribuutwaarden URI's kunnen bevatten. Dit is enkel gekend door de specificaties of toepassingen die semantieken aan de woordenschat toewijzen.
De bedoeling van XML Base is dat toekomstige specificaties en herzieningen van XML woordenschatten identificeren welke delen van het XML document beschouwd worden als URI's en normatieve referentie bieden aan deze specificatie opdat relatieve URI's consistent behandeld worden over verschillende XML documenten.
De impacten van XML Base op andere standaarden (vanaf de publicatiedatum van dit document) worden hierna beschreven.
XML 1.0 [XML] gebruikt URI referenties in de system identificatoren voor externe entiteiten. Omdat deze declaraties voorkomen buiten het document element (in een interne subset of externe DTD), verhinderen de draagregels voor xml:base
dat deze URI's beïnvloed worden door de waarde van xml:base
.
De XML Infoset [XML Infoset] definieert de base URI eigenschap van element informatie items. De laatste Infoset specificatie ondersteunt XML Base om de waarde van deze eigenschap te bepalen. Interfaces, toepassingen en specificaties die verwijzen naar deze infoset eigenschap zullen XML Base vanzelf ondersteunen.
Namespaces in XML [XML Names] gebruikt URI referenties voor de namespace identificatie. Deze wordt momenteel gedefinieerd om niet opgelost te worden relatief aan de base URI gedefinieerd door xml:base
. Hogere level processen welke namespace URI's niet volgen worden niet behandeld in de namespaces specificatie en kunnen hun mogelijkheid krijgen om te specificeren dat xml:base
gevolgd wordt voor het opvragen van bronnen in die URI's.
Het XPath [XPath] data model behoudt noch base URI informatie, noch de grenzen van externe entiteiten en is daarom onvoldoende om relatieve URI verwijzingen binnen deze entiteiten op een correcte manier op te lossen. Dit houdt ook relatieve URI verwijzingen in xml:base
attributen in.
De XSLT [XSLT] uitbreiding op het XPath data model voorziet dat base URI informatie behouden kan worden, maar definieert deze informatie op een zodanige manier dat ondersteuning voor XML Base uitgesloten wordt. Toekomstige XSLT versies kunnen mogelijk ondersteuning voor XML Base vereisen.
XML Schema Deel 2: Datatypes [XML Datatypes] definieert een uriReference
primitief datatype. De XML Datatypes specificatie kan vereisen dat toepassingen dit datatype herkennen en zulke URI's bewust zijn van XML Base.
De XLink [XLink] specificatie vereist ondersteuning voor XML Base.
XHTML [XHTML] gebruikt URI verwijzingen die verder gaan dan deze uitdrukbaar in XLink. Deze URI verwijzingen kunnen opgelost worden door een toepassing relatief aan de base URI gedefinieerd door XML Base. De XHTML specificatie kan mogelijk de ondersteuning voor XML Base omschrijven.