Slabikář XML – DTD: elementy
Po definici typu dokumentu budeme dnes pokračovat deklarací elementů v DTD. Nakonec vám ukáži použití na jednoduchém příkladě.
Hned na začátek připomínám, že každý element musí mít ukončovací tag, nebo být ve zkráceném tvaru (<br />
) a nesmíte zapomenout ani na rozlišování malých a velkých písmen.
Deklarace elementu má následující skladbu:
<!ELEMENT jmenoelementu definiceobsahuelementu>
jmenoelementu je název elementu, to je jasné. definiceobsahuelementu je určení, jestli má být obsah elementů prázdný, jen text, nebo jím mohou, či musejí být i další elementy, a když, tak jaké a jak uspořádané.
Pokud chcete deklarovat prázdný element, označíte jeho obsah jako EMPTY
. Deklarace bude vypadat takto:
<!ELEMENT br EMPTY>
Nebo můžete deklarovat element s libovolným možným obsahem, pak jeho obsah označíte jako ANY
:
<!ELEMENT kniha ANY>
Další možností je přesné určení obsahu elementu. To vkládáte do kulatých závorek. Jednotlivé prvky v závorkách oddělujete buď čárkou, nebo znakem „|“. Oddělení čárkou znamená, že v daném elementu musí jít prvky (tedy většinou elementy) v pořadí, v jakém byly zapsány. Znak „|“ by se dal přeložit, jako nebo. Ze sady prvků oddělených tímto znakem se smí vyskytovat kterýkoli z nich, ale pouze jeden. Pomocí závorek můžete z nějaké sady prvků udělat prvek jeden a ten pak dále kombinovat. To vše můžete ještě upravit znaky „?“, „+“, či „*“, resp. jejich přidáním hned za název prvku (bez mezery). Tím určíte, jestli se prvek vyskytovat může, nebo nemůže, příp. kolikrát. Pokud má být obsahem elementu pouze text, použijete označení (#PCDATA)
:
<!ELEMENT poznamka (#PCDATA)>
Nebo může element obsahovat třeba další elementy nazev, autor a anotace. A ty mohou jít buď pouze v uvedeném pořadí:
<!ELEMENT kniha (nazev, autor, anotace)>
kde se může, ale nemusí vyskytovat anotace:
<!ELEMENT kniha (nazev, autor, anotace?)>
a může mít libovolný počet autorů (nebo žádného):
<!ELEMENT kniha (nazev, autor*, anotace)>
nebo může mít libovolný počet autorů (minimálně jednoho):
<!ELEMENT kniha (nazev, autor+, anotace)>
Třeba se musí uvést právě jedna informace (jeden element):
<!ELEMENT kniha (nazev | autor | anotace)>
Nebo mohou být elementy do dokumentu „poskládány“ libovolným způsobem:
<!ELEMENT kniha (nazev | autor | anotace)*>
A mezi jednotlivými elementy ještě může být libovolný text:
<!ELEMENT kniha (#PCDATA | nazev | autor | anotace)*>
Ještě samozřejmě můžete deklarovat element s povinným názvem a libovolným počtem anotací a autorů:
<!ELEMENT kniha (nazev | (autor | anotace)*)>
Možnosti kombinací jsou opravdu široké. V následující deklaraci je třeba uvedeno, že element kniha smí obsahovat 2 až 4 autory:
<!ELEMENT kniha (autor, autor, autor?, autor?)>
A na závěr si samozřejmě ukážeme jeden příklad:
|
V příkladu se dokument dělí na dvě části: informace a ceník. Obě jsou odděleny oddělovačem. V informacích jsou tagy firma, adresa, email a nepovinný telefon (jak je patrné z DTD). Ceník může obsahovat libovolné množství produktů, ale každý produkt musí obsahovat název a cenu. A to vše je určeno pomocí DTD.
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 -
Rychlost serveru: Klíč k lepšímu umístění ve vyhledávačích
7. června 2024 -
AI v programování: Jak používat GitHub Copilot (část 1)
12. února 2024
Nejnovější
-
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 -
Jak se chránit před podvody na internetu – část 2
14. října 2024