Atributy XML
Prvky XML mohou mít atributy, stejně jako HTML.
Atributy jsou navrženy tak, aby obsahovaly data související s konkrétním prvkem.
Atributy XML musí být uvedeny v uvozovkách
Hodnoty atributů musí být vždy uvedeny. Lze použít jednoduché nebo dvojité uvozovky.
Pro pohlaví osoby lze prvek <person> napsat takto:
<person gender="female">
nebo takhle:
<person gender='female'>
Pokud samotná hodnota atributu obsahuje dvojité uvozovky, můžete použít jednoduché uvozovky, jako v tomto příkladu:
<gangster name='George "Shotgun" Ziegler'>
nebo můžete použít znakové entity:
<gangster name="George "Shotgun" Ziegler">
Prvky XML vs. atributy
Podívejte se na tyto dva příklady:
<person gender="female">
<firstname>Anna</firstname>
<lastname>Smith</lastname>
</person>
<person>
<gender>female</gender>
<firstname>Anna</firstname>
<lastname>Smith</lastname>
</person>
V prvním příkladu je pohlaví atributem. V posledním příkladu je prvkem pohlaví. Oba příklady poskytují stejné informace.
Neexistují žádná pravidla o tom, kdy použít atributy nebo kdy použít prvky v XML.
Můj oblíbený způsob
Následující tři dokumenty XML obsahují přesně stejné informace:
V prvním příkladu je použit atribut data:
<note date="2008-01-10">
<to>Tove</to>
<from>Jani</from>
</note>
Ve druhém příkladu je použit prvek <date>:
<note>
<date>2008-01-10</date>
<to>Tove</to>
<from>Jani</from>
</note>
Ve třetím příkladu je použit rozšířený prvek <date>: (THIS IS MOJE OBLÍBENÉ):
<note>
<date>
<year>2008</year>
<month>01</month>
<day>10</day>
</date>
<to>Tove</to>
<from>Jani</from>
</note>
Vyhnout se XML atributům?
Při používání atributů je třeba zvážit:
- atributy nemohou obsahovat více hodnot (prvky mohou)
- atributy nemohou obsahovat stromové struktury (prvky mohou)
- atributy nelze snadno rozšířit (pro budoucí změny)
Neskončíte takhle:
<note day="10" month="01" year="2008"
to="Tove" from="Jani" heading="Reminder"
body="Don't forget me this weekend!">
</note>
Atributy XML pro metadata
Někdy jsou prvkům přiřazeny ID reference. Tato ID lze použít k identifikaci prvků XML v podstatě stejným způsobem jako atribut id v HTML. Tento příklad to ukazuje:
<messages>
<note id="501">
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
<note id="502">
<to>Jani</to>
<from>Tove</from>
<heading>Re: Reminder</heading>
<body>I will not</body>
</note>
</messages>
Výše uvedené atributy id slouží k identifikaci různých poznámek. Není součástí poznámky samotné.
Snažím se zde říci, že metadata (data o datech) by měla být uložena jako atributy a samotná data by měla být uložena jako prvky.