Atrybuty XML
Elementy XML mogą mieć atrybuty, podobnie jak HTML.
Atrybuty są zaprojektowane tak, aby zawierały dane związane z określonym elementem.
Atrybuty XML muszą być cytowane
Wartości atrybutów muszą być zawsze cytowane. Można używać pojedynczych lub podwójnych cudzysłowów.
Dla płci osoby element <person> można zapisać w następujący sposób:
<person gender="female">
lub tak:
<person gender='female'>
Jeśli sama wartość atrybutu zawiera podwójne cudzysłowy, możesz użyć pojedynczych cudzysłowów, jak w tym przykładzie:
<gangster name='George "Shotgun" Ziegler'>
lub możesz użyć jednostek znakowych:
<gangster name="George "Shotgun" Ziegler">
Elementy XML a atrybuty
Spójrz na te dwa przykłady:
<person gender="female">
<firstname>Anna</firstname>
<lastname>Smith</lastname>
</person>
<person>
<gender>female</gender>
<firstname>Anna</firstname>
<lastname>Smith</lastname>
</person>
W pierwszym przykładzie płeć jest atrybutem. W ostatnim przykładzie płeć jest elementem. Oba przykłady dostarczają tych samych informacji.
Nie ma reguł dotyczących tego, kiedy używać atrybutów lub kiedy używać elementów w XML.
Mój ulubiony sposób
Poniższe trzy dokumenty XML zawierają dokładnie te same informacje:
W pierwszym przykładzie użyto atrybutu daty:
<note date="2008-01-10">
<to>Tove</to>
<from>Jani</from>
</note>
W drugim przykładzie użyto elementu <date>:
<note>
<date>2008-01-10</date>
<to>Tove</to>
<from>Jani</from>
</note>
Rozwinięty element <data> jest używany w trzecim przykładzie: (TO JEST MOJE ULUBIONE):
<note>
<date>
<year>2008</year>
<month>01</month>
<day>10</day>
</date>
<to>Tove</to>
<from>Jani</from>
</note>
Unikaj atrybutów XML?
Niektóre rzeczy, które należy wziąć pod uwagę podczas korzystania z atrybutów, to:
- atrybuty nie mogą zawierać wielu wartości (elementy mogą)
- atrybuty nie mogą zawierać struktur drzewiastych (elementy mogą)
- atrybuty nie są łatwo rozszerzalne (dla przyszłych zmian)
Nie kończ tak:
<note day="10" month="01" year="2008"
to="Tove" from="Jani" heading="Reminder"
body="Don't forget me this weekend!">
</note>
Atrybuty XML dla metadanych
Czasami do elementów przypisywane są referencje ID. Te identyfikatory mogą być używane do identyfikowania elementów XML w podobny sposób, jak atrybut id w HTML. Ten przykład pokazuje to:
<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>
Powyższe atrybuty id służą do identyfikacji różnych notatek. Nie jest częścią samej notatki.
Chcę tutaj powiedzieć, że metadane (dane o danych) powinny być przechowywane jako atrybuty, a same dane powinny być przechowywane jako elementy.