Slabikář XML – definice typu dokumentu
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.
Mohlo by vás také zajímat
-
Proč investovat do nejvýkonnějších VPS s AMD EPYC procesory
14. června 2024
Nejnovější
-
Windows App: Pracujte odkudkoliv, kdykoliv
3. listopadu 2024 -
Od iPhonu po Android: Ultra HDR přináší nový standard fotografií
1. listopadu 2024 -
AI a internetové podvody
29. října 2024 -
Užitečné nástroje pro bezpečnost na internetu
17. října 2024