DTD: elementlar va atributlar


XML’da qachon atributlardan, qachon bola elementlardan foydalanish haqida qoidalar yo‘q.


ULASHISH

Elementlar va atributlardan foydalanish

Ma’lumotlarni bola elementlarda yoki atributlarda saqlash mumkin.

Ushbu misollarga qarang:

<person sex="female">   <firstname>Anna</firstname>   <lastname>Smith</lastname> </person>

<person>   <sex>female</sex>   <firstname>Anna</firstname>   <lastname>Smith</lastname> </person>

Birinchi misolda sex — atribut. Oxirgisida esa sex — bola element. Ikkala misol ham bir xil ma’lumotni beradi.

Qachon atributlardan, qachon bola elementlardan foydalanish haqida qoidalar yo‘q. Tajribamga ko‘ra, atributlar HTML’da qulay, ammo XML’da ulardan qochishga harakat qilish kerak. Agar axborot ma’lumotga o‘xshasa, bola elementlardan foydalaning.


Mening sevimli usulim

Men ma’lumotlarni bola elementlarda saqlashni yoqtiraman.

Quyidagi uchta XML hujjat aynan bir xil ma’lumotni o‘z ichiga oladi:

Birinchi misolda date atributi ishlatilgan:

<note date="12/11/2002">   <to>Tove</to>   <from>Jani</from>   <heading>Reminder</heading>   <body>Don't forget me this weekend!</body> </note>

Ikkinchi misolda date elementi ishlatilgan:

<note>   <date>12/11/2002</date>   <to>Tove</to>   <from>Jani</from>   <heading>Reminder</heading>   <body>Don't forget me this weekend!</body> </note>

Uchinchisida kengaytirilgan date elementi ishlatilgan: (BU MENING SEVIMLIM):

<note>   <date>     <day>12</day>     <month>11</month>     <year>2002</year>   </date>   <to>Tove</to>   <from>Jani</from>   <heading>Reminder</heading>   <body>Don't forget me this weekend!</body> </note>


Atributlardan foydalanmaslik kerakmi?

Atributlardan foydalanishdan qochish kerakmi?

Atributlar bilan bog‘liq ba’zi muammolar:

  • atributlar bir nechta qiymatni o‘z ichiga ola olmaydi (bola elementlar esa ola oladi)
  • atributlarni osonlikcha kengaytirib bo‘lmaydi (kelajakdagi o‘zgarishlar uchun)
  • atributlar tuzilmalarni tavsiflay olmaydi (bola elementlar esa tavsiflay oladi)
  • atributlarni dastur kodi orqali boshqarish qiyinroq
  • atribut qiymatlarini DTD bo‘yicha tekshirish oson emas

Agar atributlardan ma’lumotlar uchun konteyner sifatida foydalansangiz, oxir-oqibat o‘qish va qo‘llab-quvvatlash qiyin bo‘lgan hujjatlarga ega bo‘lasiz. Ma’lumotlarni tavsiflash uchun elementlardan foydalanishga harakat qiling. Atributlardan faqat ma’lumotlarga aloqador bo‘lmagan axborotni berish uchun foydalaning.

Oxiri bunday bo‘lmasin (XML’dan bunday foydalanilmaydi):

<note day="12" month="11" year="2002" to="Tove" from="Jani" heading="Reminder" body="Don't forget me this weekend!"> </note>

Atributlar haqidagi qoidamdan istisno

Qoidalarning doim istisnolari bo‘ladi.

Atributlar haqidagi qoidamning bitta istisnosi bor:

Ba’zan elementlarga ID havolalarini tayinlayman. Bu ID havolalari yordamida XML elementlariga HTML’dagi NAME yoki ID atributlari kabi deyarli bir xil tarzda murojaat qilish mumkin. Ushbu misol buni ko‘rsatadi:

<messages> <note id="p501">   <to>Tove</to>   <from>Jani</from>   <heading>Reminder</heading>   <body>Don't forget me this weekend!</body> </note> <note id="p502">   <to>Jani</to>   <from>Tove</from>   <heading>Re: Reminder</heading>   <body>I will not!</body> </note> </messages>

Bu misollardagi ID shunchaki XML fayldagi turli eslatmalarni (note) farqlash uchun hisoblagich yoki noyob identifikator bo‘lib, eslatma ma’lumotlarining bir qismi emas.

Bu yerda aytmoqchi bo‘lganim shuki, metama’lumotlar (ma’lumotlar haqidagi ma’lumotlar) atributlar sifatida, ma’lumotlarning o‘zi esa elementlar sifatida saqlanishi kerak.


W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!