Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!
Zadejte Vaši e-mailovou adresu:
Kamarád fotí rád?
Přihlas ho k odběru fotomagazínu!
Zadejte e-mailovou adresu kamaráda:
Web
DTD (definice typu dokumentu) část třetí
20. února 2001, 00.00 | V dnešní v pořadí třetí části povídání o DTD XML dokumentů se naučíme deklarovat atributy elementů a parametrické entity.
V dnešní v pořadí třetí části povídání o DTD XML dokumentů se naučíme deklarovat atributy elementů a parametrické entity.
Elementy v XML dokumentu mohou mít libovolné množství atributů, které se používají především pro připojení různých metainformací k elementům nebo k tvorbě odkazů atd. Obecná deklarace atributu elementu vypadá následovně:
|
Klíčové slovo ATTLIST určuje, že se jedná o deklaraci atributu. Za jméno elementu dosadíme název elementu pro který atributy definujeme. Samotná deklarace atributu se skládá ze tří částí. První částí je jméno atributu. Pro vytváření jmen atributů platí stejná omezení jako pro elementy, o kterých jsme si říkali v minulém díle seriálu. I v názvech atributů se rozlišují malá a velká písmena, takže Novy_atribut a NOVY_ATRIBUT jsou dva odlišné atributy. Za jménem následuje typ atributu. Nejobecnějším typem atributu je CDATA, který umožňuje v dokumentu zadat libovolný textový řetězec např.:
|
V XML dokumentu můžeme tento atribut použít třeba takto:
|
Typ CDATA se však příliš nepoužívá, protože velmi uvolňuje pravidla zápisu dokumentů podle určitého DTD.
Odlišným typem než CDATA je NMTOKEN. Tento typ atributu může obsahovat pouze jedno slovo, pro jehož zápis platí stejná pravidla jako pro názvy elementů a atributů s tou vyjímkou, že na začátku slova může být číslice. NMTOKEN má i své rozšíření NMTOKENS. Typ NMTOKENS může obsahovat několik slov, která však musí být opět zapsána podle pravidel NMTOKEN. Nyní uvedu příklad, kde použiji oba typy atributů:
|
V dokumentu můžeme element stranka použít následovně:
|
Dalšími typy atributů jsou ID, IDREF a IDREFS. Tyto atributy se požívají pro tvorbu odkazů. Odkazy se budeme zabývat v některém z následujících dílů seriálu, proto zde nebudu tyto typy podrobněji rozebírat.
Dalším typem atributu je NOTATION, tento typ se v praxi příliš nepoužívá, slouží k určení typu dat elementu, pokud data nejsou ve formátu XML.
Poslední možností, jak vymezit typ atributu, je uvedení výčtu přípustných hodnot. Napřiklad:
|
Pokud použijeme tento typ deklarace může atribut obsahovat pouze jednu z uvedených hodnot.
Při deklaraci atributů jsem ve všech příkladech uváděl na konci tři tečky, místo nich se uvádí standardní hodnota atributu nebo zda je atribut povinný. Pokud budeme XML dokumenty kontrolovat parserem, ohlásí chyby vždy, když nebude povinný atribut v dokumentu použit. V opačné situaci si aplikace hodnotu nepovinného atributu domyslí sama. V tomto případě použijeme klíčové slovo #IMPLIED.
Specifikování standardní hodnoty můžeme provést přímo jejím uvedením za deklarací všech hodnot:
|
Před standardní hodnotu můžeme ještě uvést slovo #FIXIED, kterým stanovíme, že v dokumentu nemůže mít atribut jinou hodnotu než standardní. Možná se vám zdá, že je tato funkce neužitečná, ale mohou nastat i takové situace, kdy slovo #FIXIED použijete.
Na závěr si ještě povíme o deklaraci parametrických entit. Parametrické entity slouží především k ušetření práce při tvorbě DTD, kde se často opakují stejné sekvence textu, které bysme jinak museli neustále opisovat. Použitím těchto entit také zamezíte zbytečnému výskytu chyb, ke kterému může při opisování dojít. Ptáte se jak to celé funguje? Je to velmi jednoduché. Z programátorského hlediska bych parametrickou entitu přirovnal k proměnné, které na začátku zápisu přiřadíme hodnotu, jenž je konstantní. Tuto proměnou můžeme opakovaně používat v programu, aniž bychom museli celý text opisovat. Pokud nejste programátory a nevíte co jsou proměnné, tak si představte, že parametrická entita je kontejner, kterému dáme jméno a umístíme do něj určitý text a v DTD místo tohoto textu používáme pouze jméno kontejneru. Takto vypadá obecná deklarace entity:
|
V DTD budeme entitu volat pomocí zápisu %"entita". Nyní uvádím příklad s použitím parametrických entit:
|
V tomto příkladě jsme nadeklarovali entitu "atributy_elementu", která obsahuje prametry "jazyk" a "zarovnani", a tím jsme mohli tuto entitu používat při dalších deklaracích místo zdlouhavého opisování jejího obsahu.
Loučím se s vámi a těším se na shledanou u dalšího dílu seriálu o XML.
Obsah seriálu (více o seriálu):
- XML aneb nový formát pro nové tisíciletí
- Zápis správné syntaxe XML dokumentů
- XML - DTD (definice typu dokumentu) část první
- XML - DTD (definice typu dokumentu) část druhá
- DTD (definice typu dokumentu) část třetí
- XML - DTD (definice typu dokumentu) část čtvrtá
-
25. listopadu 2012
-
30. srpna 2002
-
10. října 2002
-
4. listopadu 2002
-
12. září 2002
-
25. listopadu 2012
-
28. července 1998
-
31. července 1998
-
28. srpna 1998
-
6. prosince 2000
-
27. prosince 2007
-
4. května 2007