XML DTD – atributy
Je to více než rok, kdy byl vydán článek o zápisu elementů v DTD pro XML. Pokusím se na tento článek plynule navázat dalším pokračováním, abyste měli ucelenou představu o tvorbě definice typu dokumentu pro vlastní varianty jazyků, odvozených od obecné normy XML.
Deklarace atributů
Každý element může obsahovat libovolné množství atributů. Atributy znáte i z HTML, např. tag <IMG> má atributy SRC, ALT, BORDER a jiné. Atributy slouží pro doplnění, resp. upřesnění informací o daném tagu. Například máme-li element KNIHA, tak jeho doplňující informací může být číslo knihy, tj. <KNIHA CISLO=“12″>. Atribut CISLO má samozřejmě význam pro strojové zpracování. Lze chápat jako „vnitřní“ číslo knihy v databázi.
Deklarace atributů vypadá následovně:
|
Nejprve je uvedeno klíčové slovo ATTLIST, které říká, že se bude deklarovat atribut. Za ním následuje jméno elementu, pro který definujeme atributy. Deklarace atributů je seznam trojic „jmeno typ hodnota“. Každý atribut má svoje pojmenování a dále se musí specifikovat, jakého typu je. Třetí argument nemusí být vždy uveden a určuje standardní hodnotu atributu. Na zápis jména atributu se vztahují podobná pravidla jako pro zápis jmen elementů.
Typy atributů
V XML můžeme použít několika typů:
- CDATA – nejobecnější typ, atribut tohoto typu může nabývat hodnoty libovolného řetězce.
- NMTOKEN – hodnotou může být řetězec složený pouze z písmen, číslic a podtržítka, nesmí obsahovat mezeru ani speciální znaky
- NMTOKENS – totéž co NMTOKEN, může být obsaženo více slov oddělených mezerou.
- ID – atribut musí mít jedinečnou hodnotu v rámci dokumentu
- IDREF – musí odkazovat na již použitou hodnotu ID v rámci dokumentu
- IDREFS – může obsahovat více odkazovaných ID oddělených mezerou
Standardní hodnota atributu
Posledním prvkem v deklaraci atributu je standardní hodnota. Zde může být uvedena např. implicitní hodnota, nebo výčet hodnot, kterých může atribut nabývat. Na závěr může být uvedeno jedno z uvedených klíčových slov:
- #REQUIRED – je požadováno, aby hodnota atributu byla zadána
- #IMPLIED – aplikace předpokládá implicitní nastavení prostředí (hodnota se pak vezme z prostředí)
- #FIXED – hodnota je zafixována, tj. může nabývat právě této hodnoty a žádné jiné
Příklady
|
Použití definovaných tagů by mohlo vypadat následovně:
|
Několikanásobná deklarace
V DTD lze, ale není to obecně doporučováno, deklarovat atributy daného elementu i vícekrát, nebo deklaraci rozdělit do několika deklarací. V každém případě, jednotlivé deklarace se kombinují dohromady a pokud se deklaroval jeden atribut vícekrát, bere se v úvahu první deklarace, jak je názorně vidět na následujícím příkladu:
|
Element OSOBA má definovány celkem 4 atributy. Atribut POHLAVI byl deklarován dvakrát, v úvahu se bere první definice. Správné použití ukazuje následující příklad:
|
Společné atributy
V DTD může někdy nastat situace, že budeme mít několik atributů (skupinu), která bude společná pro více elementů. Mějme následující příklad fragmentu DTD dokumentu:
|
V uvedené části DTD jsou dva elementy, které mají společné čtyři atributy, příjmení má navíc ještě atribut ID. Obecně bychom mohli mít DTD, kde by se takové části společných atributů opakovaly mnohem více, proto je někdy lepší použít jiného zápisu, pomocí tzv. parametrových entit. Jejich použití ukazuje následující příklad:
|
Nejprve jsem pomocí ENTITY nadefinoval skupinu atributů, která je společná pro oba elementy a pak jsem tuto definici využil v deklaraci atributů. Z příkladu je patrná i syntaxe zápisu a použití parametrových entit.
Na závěr ještě uvedu jednu důležitou poznámku. Při zápisu atributů záleží na velikosti písmen. Tzn. že „JMENO“ a „Jmeno“ jsou dva různé atributy.
Mohlo by vás také zajímat
-
Užitečné nástroje pro bezpečnost na internetu
17. října 2024 -
Nové AI modely od Open AI a Google
22. května 2024
Nejnovější
-
Výkonný a kompaktní: ASOME Max Studio s výjimečným poměrem cena/výkon
11. listopadu 2024 -
Šokující data od Microsoftu: Kyberútoky rostou o stovky procent!
8. listopadu 2024 -
Chcete jedinečnou doménu? Objevte koncovky FOOD, MEME a MUSIC!
7. listopadu 2024 -
OpenAI představilo novou funkci ChatGPT Search
6. listopadu 2024