دروس XML

الصفحة الرئيسية لـ XML مقدمة XML كيفية استخدام XML شجرة XML بناء جملة XML عناصر XML سمات XML مساحات أسماء XML عرض XML طلب XML HttpRequest محلل XML XML DOM XML XPath XML XSLT XML XQuery XML XLink مدقق XML XML DTD مخطط XML خادم XML أمثلة XML مسابقة XML شهادة XML

XML AJAX

مقدمة أجاكس أجاكس XMLHttp طلب AJAX استجابة AJAX ملف AJAX XML أجاكس بي إتش بي أجاكس آسيا والمحيط الهادئ قاعدة بيانات أجاكس تطبيقات أجاكس أمثلة AJAX

XML DOM

مقدمة حول DOM عقد DOM الوصول إلى DOM معلومات عقدة DOM قائمة عقدة DOM عبور DOM التنقل في DOM DOM احصل على القيم DOM تغيير العقد DOM إزالة العقد استبدل DOM Nodes DOM إنشاء العقد DOM أضف العقد عقد استنساخ DOM أمثلة DOM

دروس XPath

مقدمة XPath عقد XPath بناء جملة XPath محاور XPath مشغلي XPath أمثلة XPath

XSLT التعليمي

XSLT مقدمة لغات XSL تحويل XSLT XSLT <template> XSLT <قيمة> XSLT <للجميع> XSLT <ترتيب> XSLT <if> XSLT <اختر> XSLT تطبيق XSLT على العميل XSLT على الخادم XSLT تحرير XML أمثلة XSLT

XQuery تعليمي

XQuery مقدمة مثال XQuery XQuery FLWOR XQuery HTML شروط XQuery بناء جملة XQuery XQuery إضافة XQuery حدد وظائف XQuery

XML DTD

مقدمة DTD مكعبات بناء DTD عناصر DTD سمات DTD عناصر DTD مقابل Attr كيانات DTD أمثلة DTD

مخطط XSD

مقدمة XSD XSD كيف XSD <المخطط عناصر XSD سمات XSD قيود XSD

مجمع XSD

عناصر XSD XSD فارغ عناصر XSD فقط نص XSD فقط XSD مختلط مؤشرات XSD XSD <أي> XSD <أي سمة> تبديل XSD مثال XSD

بيانات XSD

سلسلة XSD تاريخ XSD XSD الرقمية XSD متفرقات مرجع XSD

خدمات الويب

خدمات XML XML WSDL صابون XML XML RDF XML RSS

مراجع

أنواع عقدة DOM عقدة DOM قائمة عقدة DOM DOM NamedNodeMap مستند DOM عنصر DOM سمة DOM نص DOM DOM CDATA تعليق DOM DOM XMLHttpRequest محلل DOM عناصر XSLT وظائف XSLT / XPath

عناصر XML مقابل السمات


في XML ، لا توجد قواعد حول وقت استخدام السمات ومتى يتم استخدام العناصر الفرعية.


استخدام العناصر مقابل السمات

يمكن تخزين البيانات في عناصر تابعة أو في سمات.

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

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

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

في المثال الأول ، يعتبر الجنس سمة. في الماضي ، الجنس عنصر طفل. كلا المثالين يقدمان نفس المعلومات.

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


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

أحب تخزين البيانات في العناصر الفرعية.

تحتوي مستندات XML الثلاثة التالية على نفس المعلومات تمامًا:

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

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

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

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

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

<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>


تجنب استخدام السمات؟

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

بعض المشاكل المتعلقة بالسمات هي:

  • لا يمكن أن تحتوي السمات على قيم متعددة (يمكن للعناصر الفرعية)
  • السمات ليست قابلة للتوسيع بسهولة (للتغييرات المستقبلية)
  • لا يمكن للسمات وصف الهياكل (يمكن للعناصر التابعة)
  • من الصعب معالجة السمات بواسطة رمز البرنامج
  • ليس من السهل اختبار قيم السمات مقابل DTD

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

لا ينتهي الأمر بهذا الشكل (ليست هذه هي الطريقة التي يجب أن تستخدم بها XML):

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

استثناء لقاعدة السمة الخاصة بي

القواعد دائما لها استثناءات.

قاعدتي حول السمات لها استثناء واحد:

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

<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>

المعرف في هذه الأمثلة هو مجرد عداد ، أو معرف فريد ، لتحديد الملاحظات المختلفة في ملف XML ، وليس جزءًا من بيانات الملاحظة.

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