لواحق XML

يمكن لعناصر XML ان تحوي على لواحق كما هي الحال في HTML.

تعطي اللواحق معلومات اضافية عن العناصر.


لواحق XML

تعطي اللواحق معلومات اضافية عن العناصر في .HTML

<img src="computer.gif">
<a href="demo.asp">

غالبا ما تعطي اللواحق معلومات غير موجودة في البيانات. في المثال التالي, نوع الملف ليس له أية علاقة بالبيانات و لكنه ضروري للتطبيقات التي ترغب بالتلاعب بالعنصر:

<file type="gif">computer.gif</file>

يجب اقتباس لواحق XML

يجب اقتباس لواحق XML على الدوام اما باستخدام قوس مفرد أو قوسين صغيرين. لتحديد جنس الشخص يمكن كتابة عنصر الشخص كالتالي:

<person sex="female">

أو على الشكل التالي:

<person sex='female'>

ازا كانت قيمة اللاحقة بذاتها تحوي على اقتباس مزدوج استخدم قوس مفرد كما في يوضح هذا المثال:

<gangster name='George "Shotgun" Ziegler'>

أو استخدم رموز entities:

<gangster name="George &quot;Shotgun&quot; Ziegler">

عناصر XML أم اللواحق

انظر الى هذه الامثلة:

<person sex="female">
<firstname>Anna</firstname>
<lastname>Smith</lastname>
</person>
<person>
<sex>أنثى</sex>
<firstname>Anna</firstname>
<lastname>Smith</lastname>
</person>

في المثال الأول يعتبر الجنس لاحقة بينما في المثال الاخير فانه يعتبر عنصر. و مع ذلك فكلا المثالين يعطيان نفس المعلومات.

لا يوجد اية قواعد سواء في استخدام اللواحق أو استخدام العناصر. اللواحق مفيدة في HTML . أما في XML فأنا أنصح بتجنب استخدامهم. استخدم العناصر بدلا من اللواحق في .XML


طريقتي المفضلة

تحتوي الامثلة الثلاثة الاتية على نفس المعلومات بالضبط:

في المثال الاول استخدم لاحقة التاريخ:

<note date="10/01/2008">
<to>Tove</to>
<from>Jani</from>
<heading>تذكير</heading>
<body>لا تنساني هذا الاسبوع</body>!
</note>

أما في المثال الثاني فان عنصر التاريخ قد استخدم:

<note>
<date>10/01/2008</date>
<to>Tove</to>
<from>Jani</from>
<heading>تذكير</heading>
<body>لا تنساني هذا الاسبوع</body>!
</note>

في المثال الثالث عنصر التاريخ الممدد قد استخدم: (هذا ما أفضله حقا):

<note>
<date>
<day>10</day>
<month>01</month>
<year>2008</year>
</date>
<to>Tove</to>
<from>Jani</from>
<heading>تذكير</heading>
<body>لا تنساني هذا الاسبوع</body>
</note>

تجنب اللواحق في XML

بعض المشاكل التي يمكن أن تواجهها في حال استخدامك للواحق:

  • لا يمكن للواحق أن تحوي على قيم متعددة (بينما العناصر يمكنها ذلك)
  • لا يمكن للواحق أن تحوي على بنية الشجرة (بينما العناصر يمكنها ذلك)
  • ليس من السهل توسيع اللواحق (من أجل استخدامها في المستقبل)
  • انه من الصعب قراءة و حفظ اللواحق. لذلك استخدم العناصر من أجل البيانات و استخدم اللواحق من أجل المعلومات التي ليس لها صلة بالبيانات.

حاول ألا تنتهي بهذا الشكل:

<note day="10" month="01" year="2008"
to="Tove" from="Jani" heading="Reminder"
body="لا تنساني هذا الاسبوع" 
</note>

لواحق XML مع ميتاداتا (Metadata)

في بعض الأحيان يعين للعناصر مراجع ID. تستخدم هذه IDs لتعريف عناصر XML بنفس الطريقة التي تعرف بها id اللواحق في .HTML


للتوضيح انظر الى هذا المثال:

<messages>
<note id="501">
<to>Tove</to>
<from>Jani</from>
<heading>تذكير</heading>
<body>لا تنساني هذا الاسبوع!</body>
</note>
<note id="502">
<to>Jani</to>
<from>Tove</from>
<heading>اعادة تذكير</heading>
<body>انني لن</body>
</note>
</messages>

استخدمت لواحق id في المثال السابق لتعريف الملاحظات المختلفة. و هي بذلك ليست جزأ من الملاحظة ذاتها.

ما أحاول قوله هنا هو أنه يجب تخزين ميتاديتا (بيانات عن البيانات) كـ لواحق و تخزين البيانات نفسها كـ عناصر.