XML Base

XML Base

Magyar fordítás

2007. február

Jelen verzió:
http://mgl.uw.hu/XMLBase/XML Base.htm
Fordító:
Máté Gábor, gabor.lajos.mate@gmail.com <gabor.lajos.mate@gmail.com>

Jelen dokumentum egy W3C-dokumentum fordítása. Mind az eredeti dokumentum, mind pedig a fordítás szerzői jogi védelem alatt áll. Az eredeti dokumentum szerzői jogára vonatkozóan lásd az angol nyelvű copyright megjegyzést. A fordítás nem minősül normatív dokumentumnak. A dokumentum egyetlen normatív verziója az angol nyelvű verzió.

A fordításban talált esetleges hibákat, illetve a fordítással kapcsolatos javaslatokat a fordító fent megadott elérhetőségén lehet jelezni.


W3C

XML Base

W3C-ajánlás 2001. június 27.

Jelen verzió:
http://www.w3.org/TR/2001/REC-xmlbase-20010627/ ( HTML és XML formátumban is)
Legutolsó verzió:
http://www.w3.org/TR/xmlbase/
Előző verzió:
http://www.w3.org/TR/2000/PR-xmlbase-20001220/
Szerkesztő:
Jonathan Marsh, Microsoft <jmarsh@microsoft.com>

Absztrakt

Jelen dokumentum egy, a HTML BASE-hez hasonló eszközt specifikál, amit arra lehet használni, hogy az XML dokumentumok egyes részeihez bázis URI-kat definiáljunk.

A dokumentum státusza

Ezt a dokumentumot a W3C tagjai, valamint egyéb érdekelt felek is ellenőrizték, és a director támogatta a W3C-ajánlásként való elfogadását. Ez egy stabil, már nem változó dokumentum, amit referenciaanyagként is lehet használni, vagy más dokumentumban normatív hivatkozásként is meg lehet adni. W3C szerepe az ajánlás létrehozásában az, hogy felhívja a figyelmet a specifikációra és elősegítse a széleskörű elfogadottságát, ezáltal növelve a Web funkcionalitását és interoperabilitását.

Ezt a dokumentumot a W3C Architecture Domainjéhez tartozó XML Activity keretein belül működő W3C XML Linking Working Group hozta létre. Erről a munkáról további információk a XML Activity Statement oldalon találhatóak.

A dokumentumban talált esetleges hibákat a www-xml-linking-comments@w3.org nyilvános levelezési listán lehet jelezni (a lista archívuma a http://lists.w3.org/Archives/Public/www-xml-linking-comments/ címen található). A talált hibák http://www.w3.org/2001/06/xmlbase-errata címen található hibajegyzékben vannak dokumentálva.

Jelen specifikáció angol nyelvű változata az egyetlen normatív változat, mindazonáltal ha a specifikáció valamely fordítása érdekelne bennünket, akkor látogassuk meg a http://www.w3.org/2001/06/xmlbase-translations oldalt.

A W3C-ajánlások és más technikai dokumentumok aktuális listája a http://www.w3.org/TR/ címen található.

Tartalomjegyzék

1 Bevezetés
2 Terminológia
3 xml:base attribútum
    3.1 Az URI hivatkozás kódolása és a behelyettesítések végrehajtása
4 A relatív URI hivatkozások feloldása
    4.1 A jelen specifikáció és az RFC 2396 kapcsolata
    4.2 A bázis URI-t megadó információ granularitása
    4.3 A bázis URI-val rendelkező URI-k esetén a megfelelő bázis URI meghatározása
5 Megfelelés a specifikációnak

Függelékek

A Hivatkozások
B Hivatkozások (nem normatív)
C Az XML Base specifikáció kihatásai más szabványokra (nem normatív)


1 Bevezetés

Az [XLink] XML Linking Language specifikáció olyan [XML] Extensible Markup Language (XML) 1.0 konstrukciókat definiál, amelyek segítségével le lehet írni az erőforrások közötti kapcsolatokat. Az XLink által támasztott követelmények egyike a [HTML 4.01] HTML linkelési konstrukciók általános módon való támogatása. A HTML BASE pontosan egy ilyen, az XLink Working Group által vizsgált konstrukció. A BASE lehetővé teszi a dokumentumok készítői számára, hogy a dokumentum bázis URI-ját explicit módon megadják. Ezt a bázis URI-t használják azután arra, hogy a relatív URI hivatkozásokat feloldják, hivatkozzanak azok külső képekre, appletekre, formfeldolgozó programokra, style sheetekre vagy bármi másra.

Ez a dokumentum egy olyan eljárást ír le, amelynek segítségével az XLink számára is megadhatunk bázis URI-t, és tekintve, hogy ez egy moduláris felépítésű specifikáció, ezért más, nem az XLinkre épülő XML alkalmazások is kihasználhatják majd az abból adódó előnyöket, hogy az eljárás használatával a relatív URI-k felett nagyobb kontroll valósítható meg. Az eljárás szintaxisa egyetlen XML attribútumból, az xml:base nevű attribútumból áll.

Az XML Base-t az új specifikációk, például az XLink és az XML Infoset normatív hivatkozásként fogják tartalmazni. Az ezekre az új technológiákra épülő alkalmazások és specifikációk az XML Base-t natív módon fogják támogatni. Az xml:base attribútumok hatása, működése nem definiált az olyan alkalmazások esetében, amikor az adott alkalmazás olyan specifikációra épül, ami az XML Base specifikációt közvetlen és közvetett módon sem hivatkozza.

2 Terminológia

[Definíció: A kell (must), nem szabad (must not), nem lehet (must not), szükséges (required), ajánlott (shall), nem ajánlott (shall not), lehet (may), opcionális (optional) kifejezések, illetve kulcsszavak a jelen specifikációban úgy értelmezendők, ahogy az [IETF RFC 2119] definálja őket.]

A bázis URI (base URI) és relatív URI (relative URI) kifejezéseket jelen specifikáció abban az értelemben használja, ahogy a [IETF RFC 2396] definiálja ezeket a kifejezéseket.

3 xml:base attribútum

Az xml:base attribútumot lehet használni arra XML dokumentumokban, hogy a dokumentum vagy a külső entitás bázis URI-jától eltérő bázis URI-t adjunk meg. Ennek az attribútumnak az értékét az RFC 2396 [IETF RFC 2396] által definiált URI hivatkozásként értelmezzük, miután a 3.1 szakaszban leírtaknak megfelelően feldolgoztuk.

A névtereket is használó XML processzorok esetén az "xml" prefix a http://www.w3.org/XML/1998/namespace névtér-névhez van kötve a Névterek az XML-ben [XML Nevek] specifikációban leírtaknak megfelelően. Vegyük észre, hogy ettől függetlenül az xml:base attribútumot a névteret nem használó processzorok még használhatják.

A következő példa az xml:base használatát mutatja be egy egyszerű, XLinket tartalmazó dokumentumban. Az XLink normatív módon hivatkozik az XML Base specifikációra az xlink:href attribútumokban használt relatív URI hivatkozások értelmezésekor.

<?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>

Ebben a példában a következőképpen kell feloldani az URI hivatkozásokat:

3.1 Az URI hivatkozás kódolása és a behelyettesítések végrehajtása

Az xml:base attribútumokban ugyanazok a megengedett karakterek, mint az XML-ben magában, azaz minden [Unicode] karakterek megengedett. Azonban bizonyos Unicode karakterek az URI hivatkozásokban nem megengedettek, és ezért a processzoroknak ezeket a karaktereket kódolniuk kell és a kóddal kell helyettesíteniük, hogy az attribútum értékéből érvényes URI hivatkozásokat állítanak elő.

A nem megengedett karakterek közé tartoznak a nem ASCII karakterek, illetve ezen felül a [IETF RFC 2396] 2.4 szakaszában felsorolt karakterek, kivéve a hashmark karaktert (#), a százalékjel karaktert (%) és a szögletes zárójeleket, mert ez utóbbiak használatát a [IETF RFC 2732] viszont engedélyezi. A nem megengedett karaktereket a következőképpen kell behelyettesíteni:

  1. Minden egyes nem megengedett karaktert UTF-8 [IETF RFC 2279] byte-re vagy byte-sorozatra kell konvertálni.

  2. A nem megengedett karaktereknek megfelelő byte-okon, illetve byte-sorozatokon alkalmazni kell az URI karakter-helyettesítési eljárását (azaz konvertálni kell őket %HH alakra, ahol HH a byte értéke hexadecimális számként felírva).

  3. Az eredeti karaktert az így előállított karaktersorozattal kell helyettesíteni.

4 A relatív URI hivatkozások feloldása

4.1 A jelen specifikáció és az RFC 2396 kapcsolata

Az RFC 2396 [IETF RFC 2396] specifikálja a dokumentumban található bázis URI-ra vonatkozó információkat. A bázis URI meghatározására vonatkozó szabályokat a következőképpen lehet összefoglalni (a magasabb prioritásútól az alacsonyabb prioritású felé haladva):

  1. A bázis URI magában a dokumentumban található.

  2. A bázis URI a dokumentumot tartalmazó entitás (üzenet, dokumentum) bázis URI-ja, ha van ilyen./p>

  3. A bázis URI az az URI, amivel az adott entitást elértük.

  4. A bázis URI-t az alkalmazás környezete definiálja.

Megjegyzés:

Az "entitás" kifejezést a fenti 2. és 3. pontban az RFC 2396 értelmében kell használni. Az "entitás" kifejezés minden más előfordulása jelen dokumentumban az XML értelemben vett entitást jelenti.

Jelen dokumentum a fenti 1. szabály részleteit specifikálja abban a speciális esetben, amikor a bázis URI-t megadó információt XML dokumentumba akarjuk beleírni.

4.2 A bázis URI-t megadó információ granularitása

Az XML dokumentumokban szereplő relatív URI-kat mindig úgy oldjuk fel, hogy ezek vagy egy elem bázisához képest relatívak, vagy egy dokumentumentitás bázisához képest, vagy pedig egy külső entitás bázisához képest. Soha nem kell alkalmazni a relatív URI-k feloldását ennél finomabb granularitásra, például attribútumok, karakterek vagy entitások bázisához képest. Ezenfelül sem a belső entitásokat, sem a külső entitásokban előforduló különálló szöveges részeket (olyan szöveges részt, amelyet nem tartalmaz egyetlen elem sem) nem vesszük figyelembe az entitáshivatkozás hatókörében lévő bázis URI beállításakor. Belső entitások esetén ez vonatkozik a belső részhalmazban deklarált és a külső DTD-ben deklarált belső entitásokra egyaránt.

A dokumentumentitás vagy a külső entitás bázis URI-ját az RFC2396 szabályait alkalmazva állapítjuk meg, azaz a bázis URI az az URI, amivel az adott dokumentumentitást vagy külső entitást elértük.

Az elem bázis URI-ja:

  1. Az adott elem xml:base attribútuma által meghatározott bázis URI, ha van ilyen; illetve ha nincs, akkor

  2. az adott dokumentumban vagy külső entitásban az adott elem szülő elemének a bázis URI-ja, ha van ilyen; illetve ha nincs, akkor

  3. az adott elemet tartalmazó dokumentumentitás vagy külső entitás bázis URI-ja.

4.3 A bázis URI-val rendelkező URI-k esetén a megfelelő bázis URI meghatározása

Egy XML dokumentumban szereplő, adott relatív URI-nak megfelelő bázis URI-t a következőképpen határozunk meg:

  • A szöveges részben megjelenő URI hivatkozás bázis URI-ja a szöveget tartalmazó elem bázis URI-ja.

  • Az xml:base attribútumban szereplő URI hivatkozás bázis URI-ja az xml:base attribútumot tartalmazó elem szülőelemének a bázis URI-ja, ha létezik a szülőelem az adott dokumentumentitásban vagy külső entitásban, illetve az adott elemet tartalmazó dokumentumentitás vagy külső entitás bázis URI-ja, ha nem létezik szülőelem az adott elemhez.

  • Bármilyen más attribútumértékben szereplő URI hivatkozás bázis URI-ja, beleértve az alapértelmezett attribútumértékeket is, az attribútumot tartalmazó elem bázis URI-ja.

  • Feldolgozó utasításban szereplő URI hivatkozás bázis URI-ja a feldolgozó utasítás szülőelemének bázis URI-ja, ha létezik a szülőelem az adott dokumentumentitásban vagy külső entitásban, illetve az adott feldolgozó utasítást tartalmazó dokumentumentitás vagy külső entitás bázis URI-ja, ha nem létezik szülőelem az adott feldolgozó utasításhoz.

Megjegyzés:

Az xml:base attribútumok használata nem várt eredményre vezethet olyan esetekben, amikor ennek az attribútumnak az értékét nem közvetlenül az XML dokumentumentitásában adjuk meg, hanem egy külső entitásban deklarált alapértelmezett attribútumértékként. Az ilyen deklarációkat ugyanis az érvényességet nem ellenőrző processzorokat használó szoftverek lehet, hogy nem olvassák be. Sok olyan XML alkalmazás van, ami nem követeli meg az érvényességet ellenőrző processzorok használatát. Azért, hogy ezek az alkalmazások is helyesen működjenek, az xml:base értékét ajánlott vagy közvetlenül megadni, vagy pedig a DTD belső részhalmazában deklarált alapértelmezett attribútumként.

5 Megfelelés a specifikációnak

Az XML Base specifikációnak megfelelő alkalmazások a bázis URI-kat a jelen specifikációban leírt feltételeknek megfelelően állapítják meg.

A Hivatkozások

IETF RFC 2119
RFC 2119: Key words for use in RFCs to Indicate Requirement Levels. Internet Engineering Task Force, 1997. (Lásd: http://www.ietf.org/rfc/rfc2119.txt.)
IETF RFC 2279
RFC 2279: UTF-8, a transformation format of ISO 10646. Internet Engineering Task Force, 1998. (Lásd: http://www.ietf.org/rfc/rfc2279.txt.)
IETF RFC 2396
RFC 2396: Uniform Resource Identifiers. Internet Engineering Task Force, 1995. (Lásd: http://www.ietf.org/rfc/rfc2396.txt.)
IETF RFC 2732
RFC 2732: Format for Literal IPv6 Addresses in URL's. Internet Engineering Task Force, 1999. (Lásd: http://www.ietf.org/rfc/rfc2732.txt.)
Unicode
The Unicode Standard. The Unicode Consortium. (Lásd: http://www.unicode.org/unicode/standard/standard.html.)
XML
Tim Bray, Jean Paoli, C.M. Sperberg-McQueen, and Eve Maler, editors. Extensible Markup Language (XML) 1.0 (Second Edition). World Wide Web Consortium, 2000. (Lásd: http://www.w3.org/TR/2000/REC-xml-20001006.)
XML Nevek
Tim Bray, Dave Hollander, and Andrew Layman, editors. Namespaces in XML. Textuality, Hewlett-Packard, and Microsoft. World Wide Web Consortium, 1999. (Lásd: http://www.w3.org/TR/1999/REC-xml-names-19990114/.)

B Hivatkozások (nem normatív)

HTML 4.01
Dave Raggett, Arnaud Le Hors, Ian Jacobs, editors. HTML 4.01 Specification. World Wide Web Consortium, 1999. (Lásd: http://www.w3.org/TR/1999/REC-html401-19991224/.)
XLink
Steve DeRose, Eve Maler, David Orchard, and Ben Trafford, editors. XML Linking Language (XLink). World Wide Web Consortium, 2000. (Lásd: http://www.w3.org/TR/2001/REC-xlink-20010627/.)
XML Datatypes
Paul V. Biron, Ashok Malhotra, editors. XML Schema Part 2: Datatypes. World Wide Web Consortium Working Draft. (Lásd: http://www.w3.org/TR/2001/REC-xmlschema-2-20010502/.)
XHTML
Steven Pemberton, et al. XHTML(TM) 1.0: The Extensible HyperText Markup Language. World Wide Web Consortium, 2000. (Lásd: http://www.w3.org/TR/2000/REC-xhtml1-20000126/.)
XML Infoset
John Cowan and Richard Tobin, editors. XML Information Set. World Wide Web Consortium, 1999. (Lásd: http://www.w3.org/TR/2001/CR-xml-infoset-20010514/.)
XPath
James Clark and Steven DeRose, editors. XML Path Language World Wide Web Consortium, 1999. (Lásd: http://www.w3.org/TR/1999/REC-xpath-19991116.)
XSLT
James Clark, editor. XSL Transformations. World Wide Web Consortium, 1999. (Lásd: http://www.w3.org/TR/1999/REC-xslt-19991116.)

C Az XML Base specifikáció kihatásai más szabványokra (nem normatív)

Az XML Base egy olyan eljárást definiál, amivel az XML dokumentumokba a bázis URI-ra vonatkozó információkat írhatunk bele. Nem definiál azonban olyan eljárást, amivel megállapíthatnánk, milyen elemek tartalmazhatnak URI-kat, vagy milyen attribútumértéket tartalmazhatnak URI-kat. Ezt csak azon specifikációk vagy alkalmazások segítségével tudjuk megállapítani, amelyek már a dokumentum szemantikáját is meghatározzák.

Az XML Base célja, hogy az ezt követő specifikációk és az XML szótárak későbbi verziói már meg tudják határozni, hogy az XML dokumentum mely részét tekintjük URI-nak, és hogy ezen specifikációk számára egy normatív hivatkozást biztosítsanak, ami a jelen specifikációra mutathat, biztosítva ezáltal, hogy az összes XML dokumentum konzisztens módon kezeli a jövőben a relatív URI-kat.

Az XML Base specifikáció kihatása más, már meglévő szabványokra (a jelen dokumentum kiadásának időpontjában) a következő: