V minulém díle jsme se seznámili s deklarací elementů, nyní si vysvětlíme deklaraci atributů.

Nejdříve si ujasněme, co je to atribut. Jsou to jakési informace vložené do začínajícího tagu nějakého elementu. Každý atribut se skládá z jeho názvu a hodnoty. V HTML udávají atributy vlastnosti daného elementu a ani v XML tomu není jinak. Samozřejmě, že si do atributu můžete vložit jakékoli informace, ale v praxi budou vždy přiřazovat vlastnosti nějakému elementu, resp. jeho obsahu. Jeden element může mít několik atributů a hodnoty atributů bývají většinou krátké výrazy do 10 do 20 znaků.

Skladba deklarace atributů vypadá následovně:

<!ATTLIST nazevelementu deklaraceatributu>

Jak to vypadá v praxi?

<POMERANC TYP="OVOCE" BARVA="ORANZOVA" CHUTNA="VELMI DOBRE">

V tomto příkladu jsme do elementu POMERANC vložili atributy TYP, BARVA a CHUTNA. Deklarace bude vypadat takto:

<!ATTLIST POMERANC
     TYP CDATA
     BARVA CDATA
     CHUTNA CDATA >

Postupně jsme deklarovali všechny atributy. Jejich typ je nastaven na CDATA, což znamená, že hodnota atributů může být jakýkoli textový řetězec. Můžeme užít i typy NMTOKEN, který symbolizuje jedno slovo skládající se z písmen a číslic, a NMTOKENS, což je několik takových slov oddělených mezerou:

<!ATTLIST POMERANC
     TYP NMTOKEN
     BARVA NMTOKEN
     CHUTNA NMTOKENS >

Ještě existují typy ID, IDREF a IDREFS. Typ ID je textový řetězec specifický pro daný element (tzn. musí mít v dokumentu vždy jedinečnou hodnotu). IDREF odkazuje na nějaké ID, bude mít tedy stejnou hodnotu, jako je hodnota ID nějakého jiného elementu v dokumentu. V typu IDREFS můžeme vložit několik hodnot ID jiných elementů oddělených mezerami.

Můžeme také určit omezený počet možných hodnot daného atributu. Možné hodnoty atributů vložíme do závorek a oddělíme znakem „|“. To celé vložíme místo typového označení:

<!ATTLIST POMERANC
     TYP (OVOCE|ZELENINA)
     BARVA (CERNA|BILA|CERVENA|ORANZOVA)
     CHUTNA (VELMIDOBRE|DOBRE|NORMALNE|SPATNE|NEDA SE JIST) >

Můžeme také uvést výchozí hodnotu atributu, pokud nebude atribut v elementu definován:

<!ATTLIST POMERANC
     TYP (OVOCE|ZELENINA) „ZELENINA“
     BARVA (CERNA|BILA|CERVENA|ORANZOVA) „BILA“
     CHUTNA (VELMI DOBRE|DOBRE|NORMALNE|SPATNE|NEDA SE JIST) „NORMALNE“ >

Za samotnou deklarací atributu ještě můžeme uvést, zda-li je atribut #IMPLIED (atribut můžeme vynechat, v tom případě si jeho hodnotu domyslí aplikace, která s dokumentem pracuje), nebo #REQUIRED (atribut nutno nastavit na nějakou hodnotu, nelze jej tedy vynechat). Pokud před výchozí hodnotou atributu uvedeme #FIXED, nesmí mít atribut jinou hodnotu, než tu výchozí (pokud atribut nějakou hodnotu má).

<!ATTLIST POMERANC
     TYP CDATA #FIXED „ZELENINA“
     BARVA (CERNA|BILA|CERVENA|ORANZOVA) #REQUIRED
     CHUTNA (VELMI DOBRE|DOBRE|NORMALNE|SPATNE|NEDA SE JIST) #IMPLIED >

Žádný příspěvek v diskuzi

Odpovědět