خصائص XML

يمكن أن تحتوي عناصر XML على خصائص في العلامة المبدئية، مثل HTML.

الخصائص (Attribute) توفر معلومات إضافية (مضيفة) عن العنصر.

خصائص XML يجب أن تحتوي على قوسات

يجب أن تكون قيمة الخاصية محاطة بالقوسات، ولكن يمكن استخدام قوسين منفصلين أو مزدوجين.

مثل جنس الشخص، يمكن كتابة علامة <person> كما يلي:

<person gender="female">

أو يمكن أن يكون كما يلي:

<person gender='female'>

إذا كان قيمة الخاصية تحتوي على双قوس، يمكنك استخدام قوسين منفصلين، مثل المثال التالي:

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

أو يمكنك استخدام رموز الحروف المميزة:

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

عناصر XML وخصائصها

الرجاء النظر في هذه الأمثلة:

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

في المثال الأول، sex هو خاصية. في المثال الثاني، sex هو عنصر فرعي. يمكن أن تقدم كلا المثالين نفس المعلومات.

لا توجد قواعد في XML تخبرنا متى يجب استخدام الخاصيات ومتى استخدام العناصر الفرعية. تجربتي هي أن الخاصيات سهلة الاستخدام في HTML، ولكن في XML، يجب تجنب استخدام الخاصيات. إذا كان يبدو أن المعلومات تبدو كبيانات، فاستخدم العناصر الفرعية.

الطريقة التي أفضلها

تتضمن الثلاثة وثائق XML التالية معلومات متطابقة تمامًا:

في المثال الأول، تم استخدام خاصية date:

<note date="2008-01-10">
  <to>George</to>
  <from>John</from>
</note>

في المثال الثاني، تم استخدام عنصر <date>:

<note>
  <date>2008-01-10</date>
  <to>George</to>
  <from>John</from>
</note>

في المثال الثالث، تم استخدام عنصر date الموسع (هذا هو المفضل لدي):

<note>
  <date>
    <year>2008</year>
    <month>01</month>
    <day>10</day>
  </date>
  <to>George</to>
  <from>John</from>
</note>

هل يجب تجنب استخدام الخاصيات؟

بعض الأمور التي يجب مراعاتها عند استخدام الخاصيات هي:

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

يرجى استخدام العناصر لتوصيف البيانات. استخدم فقط الخاصيات لتقديم معلومات غير مرتبطة بالبيانات.

لا تقم بهذا السلوك الغبي (هذا ليس هو الطريقة التي يجب استخدامها لـ XML):

<note day="10" month="01" year="2008"
to="George" from="John" heading="Reminder"
body="Don't forget the meeting!"
</note>

خصائص XML لبيانات المعلومات

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

<messages>
  <note id="501">
    <to>George</to>
    <from>John</from>
    <heading>Reminder</heading>
    <body>Don't forget the meeting!</body>
  </note>
  <note id="502">
    <to>John</to>
    <from>George</from>
    <heading>Re: تذكير</heading>
    <body>لن أقوم بذلك</body>
  </note> 
</messages>

يعد هذا الـ ID مجرد معرف يستخدم للتعرف على الوسائط المختلفة. إنه ليس جزءًا من بيانات الوسائط.

الفكرة التي نحاول إيصالها هنا هي أن يجب أن يتم تخزين البيانات المتراكبة (بيانات البيانات) كخصائص، بينما يجب تخزين البيانات نفسها كعناصر.