Slabikář XML - definice typu dokumentu
08. 04. 2002 | Marek Soldát | XML | Komentáře: 0
Tentokrát se seznámíme se základy DTD (definice typu dokumentu), kam se vkládá a co umožňuje. Zmíníme se také o tzv. jmenných prostorech (namespaces).
Jak již bylo v jednom z předchozích článků zmíněno, zásadní výhoda i problém jazyka XML je jeho eXtensible = rozšiřitelnost. To znamená, že si v dokumentu můžeme definovat vlastní sadu značek, které v něm budeme používat. Problém by nastal v případě, kdyby si dvě různé společnosti chtěli mezi sebou vyměňovat data na bázi XML a přitom by každá používala jinou sadu značek. Onen problém řeší právě DTD (Document Type Definition = definice typu dokumentu).
Co je to vlastně ta definice typu dokumentu? Jedná se o kus kódu buď vloženého přímo do dokumentu XML, nebo do externího souboru. Tento kód definuje jistá pravidla, kterými se musí skladba XML dokumentu řídit. Konkrétně se jedná o definice elementů, atributů, entit a notací.
Pokud chceme umístit DTD přímo do dokumentu, použijeme následující řešení:
|
cenik je kořenový element dokumentu. Vkládání DTD přímo do dokumentu je ale většinou velmi nepraktické. Vhodnější by bylo umístit DTD do externího souboru s příponou .dtd. Deklarace bude vypadat takto:
|
Kde cenik je opět název kořenového elementu a cenik.dtd je soubor s definicí typu dokumentu. Nesporná výhoda tohoto řešení je možnost použití jednoho DTD na více dokumentů. V úvahu přichází i možnost uložení části DTD do souboru a části přímo do dokumentu. Výsledek je zde:
|
V tomto případě jsou definice obsažené v dokumentu nadřazené definicím v souboru.
Ještě existují i veřejné definice typu dokumentu. Právě ty řeší náš ukázkový problém výměny dat mezi různými společnostmi. Deklarace v dokumentu vypadá třeba takto:
|
Část "-//W3C//DTD XHTML 1.0 Transitional//EN" je tzv. veřejný indentifikátor, podle kterého prohlížeč pozná, kterému DTD dokument vyhovuje. Pokud nepozná, můžeme uvést za veřejným identifikátorem ještě adresu kopie příslušného DTD:
|
Zde jsem zrovna použil definici dokumentu XHTML. U ostatních definic je deklarace podobná. Bližší informace o veřejných DTD najdete na webu XML.org.
Namespaces (jmenné prostory)
Jednotlivé části dokumentu mohou vyhovovat různým DTD, a jiné ne. Nejprve uvedu jeden příklad:
|
zakladni_dtd je adresa základního DTD, tedy DTD ceníku, ve kterém jsem použil části vyhovující dtd_peciva, které jsou všechny označeny. Můžeme použít i následující řešení:
|
Vedle DTD existují ještě XML Schémata. Těmi se zde ale zabývat nebudeme.
Příště se začneme zabývat kódem DTD, počínaje elementy a atributy.
Starší komentáře ke článku
Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.
Další aktuální články na interval.cz
- Zpětné odkazy: jak je nikdy nezískávat
- Budování webu 100+1 na Drupalu: tipy a postřehy
- 7 tipů, které pochopí i laici, když migrujete stránky
- Zoner FOTOden "Dobrý fotograf může být každý"
- Pozvánka na (ne)konferenci Vyhledávače zboží 2013
Tematicky související články
- Slabikář XML - skladba dokumentu
- Slabikář XML - DTD: elementy
- Slabikář XML - DTD: entity a notace
- Slabikář XML - úvod do problematiky
- Slabikář XML - odkazy
Dejte vědět i ostatním o článku
Diskuse (počet komentářů: 0)
Buďte prvním návštěvníkem, který přidá nový komentář.

