Když navrhuji vlastní formát XML, tak je přede mnou rozhodnutí, zda pro danou hodnotu použiji element či atribut. Z mého pohledu je to podobné rozhodování, jako v OOP umístění skalárních dat do samostatného objektu nebo do atributu. Oba přístupy mají něco do sebe (pro i proti) a výsledkem by měl být nějaký kompromis.
Narazil jsem však na jedno schéma, které se drží jednoho z extrémů, tedy všechno v elementech, ale nic v atributech:
<pluginRepository>
<id>snapshot-repo1.php-maven.org</id>
<name>PHP-Maven 2 Snapshot Repository</name>
<url>http://repos.php-maven.org/snapshots</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
Většina z vás jistě pozná úryvek z konfiguráku Mavenu.
Trochu jsem si s tím návrhem pohrál a udělal jsem z toho opačný extrém, tedy vše v atributech:
<pluginRepository
id="snapshot-repo1.php-maven.org"
name="PHP-Maven 2 Snapshot Repository"
url="http://repos.php-maven.org/snapshots"
releases="disabled"
snapshots="enabled"
/>
Informační obsah stejný, velikost a přehlednost rozdílná.
Pomiňme, že v Mavenu to jistě nikdo měnit nebude, ale takových dat a konfiguráků mi rukama prošlo už hodně. Některé byly ještě ukecanější a méně přehledné než první ukázka, např. klíč a hodnota v samostatných elementech uzavřené do dalšího nesémantického elementu. Jak navrhujete vlastní formáty XML? Proč dáváte přednost první variantě nebo proč druhé?