Slabikář XML – odkazy

9. května 2002

Jakým způsobem se vytvářejí odkazy v XML? Co se skrývá pod pojmem odkazovací jazyk XML Linking Language? Dnešní seznámení s XML zaměříme právě na odkazy a vše, co s tím souvisí.

Pomocí odkazu v XML můžeme vzájemně propojit dva prvky. Buď dokumenty (pak se jedná o odkazy externí), nebo jednotlivé prvky v jednom dokumentu (zde se jedná o odkazy interní). Můžeme samozřejmě propojit prvky, z nichž je každý v jiném dokumentu, opět se ale jedná o odkazy, tentokrát externí.

Nejjednoduší interní odkaz XML vytvoříte pomocí kombinace atributů typu ID a IDREF příp. IDREFS (pokud chcete odkazovat na více prvků zároveň). Zde je příklad:

<?xml version=“1.0″ encoding=“windows-1250″?>
<!DOCTYPE dokument [
<!ELEMENT odkaz (#PCDATA)>
<!ATTLIST odkaz kam IDREF #IMPLIED>
<!ELEMENT kapitola (#PCDATA)>
<!ATTLIST kapitola id ID #IMPLIED>
]>
<dokument>
Nezapomeňte si přečíst <odkaz kam=“upozorneni“>důležité upozornění</odkaz>!
<kapitola id=“1″>ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC
ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC
ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC </kapitola>
<kapitola id=“2″>ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC
ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC
ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC </kapitola>
<kapitola id=“upozorneni“>ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC
ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC
ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC </kapitola>

<kapitola id=“3″>ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC
ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC
ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC </kapitola>
</dokument>

V uvedeném příkladu slouží jako odkaz element odkaz. Ten má atribut kam, který je typu IDREF, což znamená, že odkazuje svou hodnotou na jiný element s atributem ID, který je roven hodnotě atributu IDREF elementu odkaz. V tomto tedy odkazuje na element kapitola s atributem id upozorneni.

Můžete odkazovat i na více elementů zároveň, pokud použijete místo IDREF typ IDREFS. Jednotlivé hodnoty oddělíte mezerou:

<?xml version=“1.0″ encoding=“windows-1250″?>
<!DOCTYPE dokument [
<!ELEMENT odkaz (#PCDATA)>
<!ATTLIST odkaz kam IDREFS #IMPLIED>
<!ELEMENT kapitola (#PCDATA)>
<!ATTLIST kapitola id ID #IMPLIED>
]>
<dokument>
Určitě si přečtěte <odkaz kam=“1 2″>první a druhou kapitolu</odkaz>!
<kapitola id=“1″>ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC
ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC
ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC </kapitola>
<kapitola id=“2″>ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC
ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC
ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC </kapitola>

<kapitola id=“upozorneni“>ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC
ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC
ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC </kapitola>
<kapitola id=“3″>ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC
ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC
ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC </kapitola>
</dokument>

Tentokrát jste odkázali na dva elementy kapitola s hodnotou ID 1 a 2. Můžete samozřejmě odkázat i na více elementů. Nesmíte ale zapomínat na to, že atribut typu ID musí být pro každý element jedinečný! Nelze tedy odkázat na více elementů přiřazením shodného ID.

XLink

XML Linking Language zkráceně XLink je odkazovací jazyk vyvinutý pro použití v XML dokumentech. Jeho schopnosti jsou dokonce ještě vyšší, než odkazování v dokumentech HTML. Prvky XLink vyhovují speciálnímu DTD, proto zde musíte užít jmenné prostory, neboli namespaces. Adresa DTD pro XLink je http://www.w3.org/1999/xlink. Zde je příklad:

<dokument xmlns:xlink=“http://www.w3.org/1999/xlink“>
Podívejte se na náš <xlink:simple xlink:href=“cenik.xml“>ceník</xlink:simple>.
</dokument>

Pomocí XLink jsem vytvořil jednoduchý odkaz na soubor cenik.xml. U jednoduchého odkazu však můžete určit více atributů.

href – URL, na které se odkazuje;
title – titulek odkazu (stejný význam, jako v HTML);
role – definice druhu odkazu (nemá vliv na jeho funkci);
show – něco jako target v HTML; při hodnotě replace nahradí současný dokument, jako new se otevře do nového okna a jako embed se odkazovaná část stane součástí aktivního dokumentu;
actuate – při hodnotě onLoad se aktivuje hned po načtení, při onRequest až na pokyn uživatele (např. po kliknutí).

Příklad použití všech atributů:

Podívejte se na náš <xlink:simple xlink:href=“cenik.xml“
     xlink:title=“Ceník pro maloobchody“
     xlink:role=“odkaznacenik“
     xlink:show=“new“
     xlink:actuate=“onRequest“>ceník</xlink:simple>.

V XML můžete použít i odkazy rozšířené, které umožňují odkazovat na více dokumentů současně:

<xlink:extented>
<xlink:title>České portály</xlink:title>
<xlink:locator href=“http://www.seznam.cz/“ />
<xlink:locator href=“http://www.centrum.cz/“ />
<xlink:locator href=“http://www.tiscali.cz/“ />
<xlink:locator href=“http://www.atlas.cz/“ />
<xlink:locator href=“http://www.quick.cz/“ />
</xlink:extented>

Tento jeden velký odkaz se skládá z elementu extented obsahujícího elementy locator (které mohou mít ještě atribut title a role) a element title – titulek našeho velkého odkazu.

Pokud odkazy zobrazíte v prohlížeči, který obsahuje kontrolu podle DTD, umožní na vytvořené odkazy kliknout. Prohlížeče většinou tuto kontrolu nemají, takže zachovejte chladnou hlavu, když odkazy nebudou fungovat dle vašich představ.

Starší komentáře ke článku

Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.

Štítky: Články

Mohlo by vás také zajímat

Nejnovější

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *