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
-
AI na dosah ruky: Jak je to s AI v osobních zařízeních?
22. ledna 2024 -
Jak nainstalovat šablonu ve WordPressu
23. července 2024 -
Co je to VRAM a jak ji navýšit bez drahého upgradu?
20. srpna 2024 -
Nepodceňte UX na vašem webu: Proč na něm záleží?
10. dubna 2024
Nejnovější
-
Apple jde naproti práci s HDR monitory!
17. ledna 2025 -
Jak využít AI potenciál svého Macu?
9. ledna 2025 -
NIS2: Verifikace údajů vlastníků domén
6. ledna 2025 -
Dostali jste k vánocům PC? Využijte jeho AI potenciál!
3. ledna 2025