XML Öznitelikleri
XML öğeleri, tıpkı HTML gibi niteliklere sahip olabilir.
Nitelikler, belirli bir öğeyle ilgili verileri içerecek şekilde tasarlanmıştır.
XML Nitelikleri Alıntı Yapılmalıdır
Öznitelik değerleri her zaman alıntılanmalıdır. Tek veya çift tırnak kullanılabilir.
Bir kişinin cinsiyeti için <person> öğesi şu şekilde yazılabilir:
<person gender="female">
veya bunun gibi:
<person gender='female'>
Öznitelik değerinin kendisi çift tırnak içeriyorsa, bu örnekte olduğu gibi tek tırnak kullanabilirsiniz:
<gangster name='George "Shotgun" Ziegler'>
veya karakter varlıklarını kullanabilirsiniz:
<gangster name="George "Shotgun" Ziegler">
XML Öğeleri ve Nitelikler
Şu iki örneğe bir göz atın:
<person gender="female">
<firstname>Anna</firstname>
<lastname>Smith</lastname>
</person>
<person>
<gender>female</gender>
<firstname>Anna</firstname>
<lastname>Smith</lastname>
</person>
İlk örnekte, cinsiyet bir niteliktir. Son örnekte, cinsiyet bir unsurdur. Her iki örnek de aynı bilgileri sağlar.
XML'de özniteliklerin ne zaman kullanılacağı veya öğelerin ne zaman kullanılacağı hakkında hiçbir kural yoktur.
Favori Yolum
Aşağıdaki üç XML belgesi tamamen aynı bilgileri içerir:
İlk örnekte bir tarih niteliği kullanılmıştır:
<note date="2008-01-10">
<to>Tove</to>
<from>Jani</from>
</note>
İkinci örnekte bir <date> öğesi kullanılmıştır:
<note>
<date>2008-01-10</date>
<to>Tove</to>
<from>Jani</from>
</note>
Üçüncü örnekte genişletilmiş bir <date> öğesi kullanılmıştır: (BU BENİM FAVORİMİ):
<note>
<date>
<year>2008</year>
<month>01</month>
<day>10</day>
</date>
<to>Tove</to>
<from>Jani</from>
</note>
XML Özniteliklerinden Kaçının?
Nitelikleri kullanırken dikkate alınması gereken bazı şeyler şunlardır:
- nitelikler birden fazla değer içeremez (öğeler içerebilir)
- nitelikler ağaç yapıları içeremez (öğeler içerebilir)
- nitelikler kolayca genişletilemez (gelecekteki değişiklikler için)
Böyle bitmesin:
<note day="10" month="01" year="2008"
to="Tove" from="Jani" heading="Reminder"
body="Don't forget me this weekend!">
</note>
Meta Veriler için XML Nitelikleri
Bazen öğelere kimlik referansları atanır. Bu kimlikler, XML öğelerini HTML'deki id özniteliğiyle aynı şekilde tanımlamak için kullanılabilir. Bu örnek şunu göstermektedir:
<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>
Yukarıdaki kimlik özellikleri, farklı notları tanımlamak içindir. Notun kendisinin bir parçası değildir.
Burada söylemeye çalıştığım şey, meta verilerin (verilerle ilgili veriler) nitelikler olarak saklanması ve verilerin kendisinin öğeler olarak saklanması gerektiğidir.