لواحق XML







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

لواحق XML

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

رمز PHP:
<img src="computer.gif">
<
a href="demo.asp"

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

رمز PHP:
<file type="gif">computer.gif</file

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

رمز PHP:
<person sex="female"

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

رمز PHP:
<person sex='female'

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

رمز PHP:
<gangster name='George "Shotgun" Ziegler'

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

رمز PHP:
<gangster name="George &quot;Shotgun&quot; Ziegler"

عناصر XML أم اللواحق انظر الى هذه الامثلة:

رمز PHP:
<person sex="female">
<
firstname>Anna</firstname>
<
lastname>Smith</lastname>
</
person
رمز PHP:
<person>
<
sex>أنثى</sex>
<
firstname>Anna</firstname>
<
lastname>Smith</lastname>
</
person

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

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

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

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

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

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

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

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

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

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

لا يمكن للواحق أن تحوي على قيم متعددة (بينما العناصر يمكنها ذلك)

لا يمكن للواحق أن تحوي على بنية الشجرة (بينما العناصر يمكنها ذلك)

ليس من السهل توسيع اللواحق (من أجل استخدامها في المستقبل)

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

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

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

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

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

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

رمز PHP:
<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 في المثال السابق لتعريف الملاحظات المختلفة. و هي بذلك ليست جزأ من الملاحظة ذاتها. ما أحاول قوله هنا هو أنه يجب تخزين ميتاديتا (بيانات عن البيانات) كـ لواحق و تخزين البيانات نفسها كـ عناصر.


aymoon989 : http://www.traidnt.net/vb/traidnt2519492