XML

لغة الترميز القابلة للتوسيع ( XML ) هي لغة ترميز وتنسيق ملفات لتخزين البيانات ونقلها وإعادة بنائها. وهي تحدد مجموعة من القواعد لترميز المستندات بتنسيق قابل للقراءة البشرية والآلية على حد سواء . وقد تم تعريف XML من خلال مواصفات XML 1.0 الصادرة عن اتحاد شبكة الويب العالمية [ 2 ] عام 1998 [ 3 ] ، بالإضافة إلى العديد من المواصفات الأخرى ذات الصلة [ 4 ] ، وجميعها معايير مفتوحة المصدر ومجانية . [ 5 ]

تُركز أهداف تصميم لغة XML على البساطة والعمومية وسهولة الاستخدام عبر الإنترنت . [ 6 ] وهي صيغة بيانات نصية مدعومة بقوة عبر يونيكود للغات بشرية مختلفة . على الرغم من أن تصميم XML يركز على المستندات، إلا أن اللغة تُستخدم على نطاق واسع لتمثيل هياكل البيانات المختلفة ، [ 7 ] مثل تلك المستخدمة في خدمات الويب . [ 8 ]

توجد العديد من أنظمة المخططات للمساعدة في تعريف اللغات القائمة على XML، في حين قام المبرمجون بتطوير العديد من واجهات برمجة التطبيقات (APIs) للمساعدة في معالجة بيانات XML.

ملخص

يتمثل الغرض الرئيسي من لغة XML في تسلسل البيانات، أي تخزينها ونقلها وإعادة بنائها. ولكي يتبادل نظامان مختلفان المعلومات، يحتاجان إلى الاتفاق على تنسيق ملف. تعمل لغة XML على توحيد هذه العملية، ولذلك فهي تُشبه لغة مشتركة لتمثيل المعلومات. [ 9 ]

تُستخدم لغة XML كلغة ترميز لتصنيف المعلومات وتصنيفها وتنظيمها هيكليًا. [ 10 ] تمثل وسوم XML بنية البيانات وتحتوي على بيانات وصفية . ما يوجد داخل هذه الوسوم هو البيانات، مُشفّرة وفقًا لمعيار XML. [ 10 ] يُحدد مخطط XML إضافي (XSD) البيانات الوصفية اللازمة لتفسير XML والتحقق من صحته. (يُشار إليه أيضًا بالمخطط الأساسي). [ 11 ] يُعتبر مستند XML الذي يلتزم بقواعد XML الأساسية "سليم البنية"؛ أما المستند الذي يلتزم بمخططه فيُعتبر "صالحًا". [ 11 ]

تُقدّم المواصفة RFC 7303 الصادرة عن فريق هندسة الإنترنت (والتي تحل محل المواصفة RFC 3023 الأقدم ) قواعد لإنشاء أنواع الوسائط المستخدمة في رسائل XML. وتُعرّف ثلاثة أنواع من الوسائط: application/xml( text/xmlوهو اسم بديل)، و application/xml-external-parsed-entity( text/xml-external-parsed-entityوهو اسم بديل)، و application/xml-dtd. تُستخدم هذه الأنواع لنقل ملفات XML الخام دون الكشف عن دلالاتها الداخلية . كما توصي المواصفة RFC 7303 بمنح اللغات المبنية على XML أنواع وسائط تنتهي بـ +xml، على سبيل المثال، image/svg+xmlلملفات SVG .

تظهر المزيد من الإرشادات لاستخدام لغة XML في سياق الشبكات في RFC 3470 ، والمعروف أيضًا باسم IETF BCP 70، وهي وثيقة تغطي العديد من جوانب تصميم ونشر لغة قائمة على XML. [ 8 ]

التطبيقات

أصبح استخدام لغة XML شائعًا لتبادل البيانات عبر الإنترنت. وقد طُوّرت مئات من تنسيقات المستندات التي تستخدم بنية XML، [ 12 ] بما في ذلك RSS و Atom و Office Open XML و OpenDocument و SVG و COLLADA و XHTML . كما تُعدّ XML اللغة الأساسية لبروتوكولات الاتصال مثل SOAP و XMPP . وهي إحدى تنسيقات تبادل الرسائل المستخدمة في تقنية البرمجة غير المتزامنة AJAX (جافا سكريبت وXML) .

تعتمد العديد من معايير بيانات الصناعة، مثل المستوى الصحي السابع (Health Level 7 ) وتحالف السفر المفتوح (OpenTravel Alliance ) و FpML و MISMO ونموذج تبادل المعلومات الوطني (NICX)، على لغة XML وميزاتها الغنية. وفي مجال النشر، تُعدّ بنية داروين لتصنيف المعلومات (Darwin Information Typing Architecture) معيارًا لبيانات الصناعة بلغة XML. وتُستخدم XML على نطاق واسع لدعم مختلف تنسيقات النشر.

من تطبيقات لغة XML في العلوم تمثيل معلومات الأرصاد الجوية التشغيلية بناءً على معايير IWXXM . [ 13 ]

المصطلحات الرئيسية

تستند المعلومات الواردة في هذا القسم إلى مواصفات XML . ولا تُعدّ هذه قائمة شاملة لجميع العناصر التي تظهر في XML، بل هي مقدمة للعناصر الرئيسية الأكثر شيوعًا في الاستخدام اليومي.

شخصية
مستند XML عبارة عن سلسلة من الأحرف . يمكن أن يظهر كل حرف Unicode قانوني (باستثناء Null) في مستند XML (1.1) (بينما يُنصح بتجنب بعضها).
المعالج والتطبيق
يقوم المعالج بتحليل الترميز وتمرير المعلومات المنظمة إلى التطبيق . يحدد المعيار متطلبات ما يجب على معالج XML فعله وما لا يجب عليه فعله، لكن التطبيق يقع خارج نطاقه. يُشار إلى المعالج (كما يُطلق عليه في المعيار) عادةً باسم محلل XML .
الترميز والمحتوى
تُقسّم الأحرف المكونة لمستند XML إلى ترميز ومحتوى ، ويمكن التمييز بينهما بتطبيق قواعد نحوية بسيطة . عمومًا، تبدأ السلاسل النصية التي تُشكّل ترميزًا إما بالحرف <وتنتهي بـ >، أو تبدأ بالحرف &وتنتهي بـ ;. أما السلاسل النصية التي لا تُشكّل ترميزًا فتُعتبر محتوى. مع ذلك، في قسم CDATA ، يُصنّف الفاصلان <![CDATA[و ]]>على أنهما ترميز، بينما يُصنّف النص بينهما على أنه محتوى. إضافةً إلى ذلك، تُصنّف المسافات البيضاء قبل وبعد العنصر الخارجي على أنها ترميز.
الوسم
الوسم هو عنصر برمجي يبدأ بـ وينتهي بـ . وهناك ثلاثة أنواع من الوسوم :<>
  • علامة البداية ، مثل <section>؛
  • علامة النهاية ، مثل </section>؛
  • علامة العنصر الفارغ ، مثل <line-break />.
عنصر
العنصر هو مكون منطقي في المستند، يبدأ إما بعلامة بداية وينتهي بعلامة نهاية مطابقة، أو يتكون فقط من علامة عنصر فارغة. الأحرف بين علامتي البداية والنهاية، إن وجدت، تمثل محتوى العنصر ، وقد تحتوي على ترميز، بما في ذلك عناصر أخرى تُسمى عناصر فرعية . مثال على ذلك: <a> . مثال آخر: <a> .<greeting>Hello, world!</greeting><line-break />
يصف
السمة هي بنية ترميزية تتكون من زوج اسم-قيمة، وتوجد داخل وسم بداية أو وسم عنصر فارغ. على سبيل المثال ، السمة `<madonna.jpg>`، حيث اسم السمة `<madonna.jpg>` واسم السمة `<madonna.jpg>` هما `<madonna.jpg>` و`<madonna>` على التوالي. مثال آخر هو السمة `<madonna.jpg>`، حيث اسم السمة `<madonna.jpg>` وقيمتها `<madonna>` هي `<madonna.jpg>`. لا يمكن أن تحتوي سمة XML إلا على قيمة واحدة، ويمكن أن تظهر كل سمة مرة واحدة فقط في كل عنصر. في الحالة الشائعة التي تتطلب قائمة من قيم متعددة، يجب ترميز القائمة في سمة XML سليمة [ i ] بتنسيق يتجاوز ما يحدده XML نفسه. عادةً ما تكون هذه القائمة مفصولة بفواصل أو فواصل منقوطة، أو إذا كانت القيم الفردية معروفة بأنها لا تحتوي على مسافات، [ ii ] فيمكن استخدام قائمة مفصولة بمسافات. مثال على استخدام المسافة كفاصل هو ، حيث أن السمة "class" لها القيمة "inner greeting-box" وتشير أيضًا إلى اسمي فئتي CSS "inner" و "greeting-box".<img src="madonna.jpg" alt="Madonna" /><step number="3">Connect A to B.</step><div class="inner greeting-box">Welcome!</div>
إعلان XML
قد تبدأ مستندات XML بإعلان XML يصف بعض المعلومات عنها. مثال على ذلك <?xml version="1.0" encoding="UTF-8"?>:

الشخصيات والهروب

تتكون مستندات XML بالكامل من أحرف من مجموعة أحرف يونيكود . باستثناء عدد قليل من أحرف التحكم المستثناة تحديدًا ، يمكن أن يظهر أي حرف مُعرَّف بواسطة يونيكود ضمن محتوى مستند XML.

يتضمن XML تسهيلات لتحديد ترميز أحرف Unicode التي تشكل المستند، وللتعبير عن الأحرف التي لا يمكن استخدامها بشكل مباشر لسبب أو لآخر.

أحرف صالحة

تعتبر نقاط ترميز Unicode في النطاقات التالية صالحة في مستندات XML 1.0: [ 14 ]

يُوسّع معيار XML 1.1 مجموعة الأحرف المسموح بها لتشمل جميع الأحرف المذكورة أعلاه، بالإضافة إلى الأحرف المتبقية في النطاق U+0001–U+001F. [ 15 ] في الوقت نفسه، يُقيّد استخدام أحرف التحكم C0 و C1 باستثناء U+0009 (علامة الجدولة الأفقية)، وU+000A (سطر جديد)، وU+000D (إرجاع المؤشر إلى بداية السطر)، وU+0085 (السطر التالي) من خلال اشتراط كتابتها بصيغة مُهرّبة (على سبيل المثال، يجب كتابة U+0001 كـ &#x01;أو ما يُعادلها). في حالة أحرف C1، يُعدّ هذا التقييد عدم توافق مع الإصدارات السابقة؛ وقد أُضيف للسماح باكتشاف أخطاء الترميز الشائعة.

نقطة الترميز U+0000 (الفارغ) هي الحرف الوحيد غير المسموح به في أي مستند XML 1.1.

كشف التشفير

يمكن ترميز مجموعة أحرف يونيكود إلى بايتات للتخزين أو الإرسال بطرق متنوعة تُسمى "الترميزات". يُعرّف يونيكود نفسه ترميزات تُغطي المجموعة الكاملة؛ ومن أشهرها UTF-8 (الذي يُوصي معيار XML باستخدامه، بدون علامة ترتيب البايتات BOM ) و UTF-16 . [ 16 ] وهناك العديد من ترميزات النصوص الأخرى التي سبقت يونيكود، مثل ASCII ومختلف ترميزات ISO/IEC 8859 ؛ وتُمثل مجموعات أحرفها في جميع الحالات مجموعات فرعية من مجموعة أحرف يونيكود.

تتيح لغة XML استخدام أي من الترميزات المُعرّفة في يونيكود، بالإضافة إلى أي ترميزات أخرى تظهر أحرفها في يونيكود. كما توفر XML آليةً تمكّن معالج XML من تحديد الترميز المُستخدم بدقة ودون أي معرفة مسبقة. [ 17 ] لا تتعرف جميع مُحللات XML بالضرورة على الترميزات الأخرى غير UTF-8 وUTF-16 (وفي بعض الحالات لا تتعرف حتى على UTF-16، على الرغم من أن المعيار يُلزم بالتعرف عليه).

الهروب

توفر لغة XML إمكانيات تهريب لتضمين الأحرف التي يصعب تضمينها مباشرةً. على سبيل المثال:

  • يُعدّ الرمزان " < " و"&" من علامات بناء الجملة الأساسية، ولا يجوز استخدامهما في المحتوى خارج قسم CDATA . يُسمح باستخدام " < " في قيم كيانات XML، ولكن لا يُنصح بذلك. [ 18 ]
  • تدعم بعض ترميزات الأحرف مجموعة فرعية فقط من يونيكود. على سبيل المثال، من الممكن ترميز مستند XML باستخدام ASCII، لكن ASCII يفتقر إلى نقاط الترميز لأحرف يونيكود مثل "é".
  • قد لا يكون من الممكن كتابة الحرف على جهاز المؤلف.
  • تحتوي بعض الأحرف على رموز لا يمكن تمييزها بصريًا عن الأحرف الأخرى، مثل المسافة غير القابلة للكسر ( &#xa0;) " " والمسافة ( ) &#x20;" "، والحرف السيريلي الكبير A ( &#x410;) "А" والحرف اللاتيني الكبير A ( &#x41;) "A".

هناك خمسة كيانات محددة مسبقًا :

  • &lt;يمثل " < ";
  • &gt;يمثل " > ";
  • &amp;يمثل "&"؛
  • &apos;يمثل " ' ";
  • &quot;يمثل ' " '.

يمكن تمثيل جميع أحرف يونيكود المسموح بها باستخدام مرجع حرف رقمي . على سبيل المثال، الحرف الصيني "中"، الذي يُرمز له في يونيكود بالرمز الست عشري 4E2D، أو العشري 20013. يمكن للمستخدم الذي لا توفر لوحة مفاتيحه طريقة لإدخال هذا الحرف إدراجه في مستند XML مُشفّرًا إما كـ &#20013;أو &#x4e2d;. وبالمثل، يمكن تشفير السلسلة "I < 3 Jörg" لإدراجها في مستند XML كـ .I &lt;3 J&#xF6;rg

&#0;لا يُسمح بذلك لأن الحرف الفارغ هو أحد أحرف التحكم المستبعدة من XML، حتى عند استخدام مرجع حرف رقمي. [ 19 ] يلزم وجود آلية ترميز بديلة مثل Base64 لتمثيل هذه الأحرف.

تعليقات

يمكن أن تظهر التعليقات في أي مكان في المستند خارج علامات التنسيق الأخرى. لا يمكن أن تظهر التعليقات قبل تعريف XML. تبدأ التعليقات بـ <!--وتنتهي بـ . ولضمان التوافق مع SGML ، لا يُسمح باستخدام السلسلة "--" (الواصلة المزدوجة) داخل التعليقات؛ [ 20 ] وهذا يعني أنه لا يمكن تداخل التعليقات. لا يحمل رمز العطف (&) أي دلالة خاصة داخل التعليقات، لذا لا يتم التعرف على مراجع الكيانات والأحرف على هذا النحو، ولا توجد طريقة لتمثيل الأحرف خارج مجموعة أحرف ترميز المستند.-->

مثال على تعليق صحيح: <!--no need to escape <code>& such in comments-->

للاستخدام الدولي

يدعم كل من XML 1.0 (الإصدار الخامس) وXML 1.1 الاستخدام المباشر لأي حرف تقريبًا من أحرف يونيكود في أسماء العناصر، والخصائص، والتعليقات، وبيانات الأحرف، وتعليمات المعالجة (باستثناء الأحرف التي لها دلالة رمزية خاصة في XML نفسه، مثل علامة أصغر من " < "). فيما يلي مثال على مستند XML سليم البنية يتضمن أحرفًا صينية وأرمينية وسيريلية :

<?xml version="1.0" encoding="UTF-8"?> <俄语ᬯᥐ᦯uh= "Ἴḩẫẫẫẫẫẫẫẫ" > данные < /俄语>

الصحة النحوية ومعالجة الأخطاء

تُعرّف مواصفات XML مستند XML بأنه نص سليم البنية ، أي أنه يستوفي قائمة من قواعد بناء الجملة الواردة في المواصفات. ومن أهم هذه القواعد:

  • لا يحتوي المستند إلا على أحرف يونيكود قانونية مشفرة بشكل صحيح.
  • لا تظهر أي من أحرف بناء الجملة الخاصة مثل <و &إلا عند أداء أدوارها في تحديد علامات الترميز.
  • يتم تداخل علامات البداية والنهاية وعلامة العنصر الفارغ التي تحدد العناصر بشكل صحيح، دون وجود أي منها مفقود أو متداخل.
  • أسماء الوسوم حساسة لحالة الأحرف؛ يجب أن يتطابق وسم البداية ووسم النهاية تمامًا.
  • لا يمكن أن تحتوي أسماء العلامات على أي من الأحرف ، ولا مسافة، ولا يمكن أن تبدأ بـ "-" أو "." أو رقم.!"#$%&'()*+,/;<=>?@[\]^`{|}~
  • يحتوي عنصر الجذر الواحد على جميع العناصر الأخرى.

يستثني تعريف مستند XML النصوص التي تحتوي على انتهاكات لقواعد البنية السليمة؛ فهي ببساطة ليست XML. ويُلزم معالج XML الذي يواجه مثل هذا الانتهاك بالإبلاغ عن هذه الأخطاء والتوقف عن المعالجة العادية. [ 21 ] [ 22 ] وتتناقض هذه السياسة، التي يُشار إليها أحيانًا باسم " المعالجة الصارمة للأخطاء"، تناقضًا ملحوظًا مع سلوك البرامج التي تعالج HTML ، والمصممة لإنتاج نتيجة معقولة حتى في وجود أخطاء جسيمة في الترميز. [ 23 ] وقد وُجهت انتقادات لسياسة XML في هذا المجال باعتبارها انتهاكًا لقانون بوستل ("كن متحفظًا فيما ترسل، وكن متساهلًا فيما تقبل"). [ 24 ]

تُعرّف مواصفات XML مستند XML الصالح بأنه مستند XML سليم البنية يتوافق أيضًا مع قواعد تعريف نوع المستند (DTD). [ 25 ]

المخططات والتحقق من الصحة

إضافةً إلى كونها سليمة البنية، قد تكون وثيقة XML صالحة . وهذا يعني أنها تحتوي على مرجع إلى تعريف نوع المستند (DTD)، وأن عناصرها وخصائصها مُعلنة في تعريف نوع المستند هذا وتتبع القواعد النحوية التي يحددها تعريف نوع المستند.

تُصنّف معالجات XML إلى معالجات تحقق من الصحة ومعالجات لا تتحقق منها، وذلك بناءً على ما إذا كانت تتحقق من صحة مستندات XML أم لا. [ 26 ] يجب أن يكون المعالج الذي يكتشف خطأً في الصحة قادرًا على الإبلاغ عنه، ولكنه قد يستمر في المعالجة العادية.

يُعدّ تعريف نوع المستند (DTD) مثالاً على المخطط أو القواعد النحوية . منذ النشر الأولي لـ XML 1.0، بُذلت جهودٌ كبيرة في مجال لغات المخططات الخاصة بـ XML. عادةً ما تُقيّد هذه اللغات مجموعة العناصر التي يُمكن استخدامها في المستند، والسمات التي يُمكن تطبيقها عليها، وترتيب ظهورها، وعلاقات الأصل/الفرع المسموح بها.

تعريف نوع المستند

إن أقدم لغة مخطط لـ XML هي تعريف نوع المستند (DTD)، الموروثة من SGML.

تتمتع تقنية DTD بالمزايا التالية:

  • يُعد دعم DTD واسع الانتشار نظرًا لإدراجه في معيار XML 1.0.
  • تتميز تعريفات نوع المستند (DTDs) بالإيجاز مقارنة بلغات المخططات القائمة على العناصر، وبالتالي فهي تعرض المزيد من المعلومات في شاشة واحدة.
  • تسمح تعريفات نوع المستند (DTDs) بإعلان مجموعات الكيانات العامة القياسية لنشر الأحرف.
  • تحدد DTDs نوع المستند بدلاً من الأنواع المستخدمة بواسطة مساحة الاسم، وبالتالي تجميع جميع القيود الخاصة بالمستند في مجموعة واحدة.

تتضمن تعريفات نوع المستند (DTD) القيود التالية:

  • لا يوجد لديهم دعم صريح للميزات الأحدث في لغة XML، وأهمها مساحات الأسماء .
  • تفتقر إلى القدرة على التعبير. تُعدّ تعريفات نوع المستند (DTD) الخاصة بلغة XML أبسط من تعريفات نوع المستند الخاصة بلغة SGML، وهناك بعض البنى التي لا يمكن التعبير عنها باستخدام القواعد النحوية العادية. تدعم تعريفات نوع المستند (DTD) أنواع البيانات الأساسية فقط.
  • تفتقر هذه النماذج إلى سهولة القراءة. عادةً ما يستخدم مصممو DTD كيانات المعلمات بكثرة (والتي تعمل بشكل أساسي كوحدات ماكرو نصية )، مما يسهل تعريف القواعد المعقدة، ولكن على حساب الوضوح.
  • يستخدمون صيغةً مبنيةً على صيغة التعبيرات النمطية ، الموروثة من SGML، لوصف المخطط. لا تحاول واجهات برمجة تطبيقات XML التقليدية، مثل SAX، تزويد التطبيقات بتمثيل منظم لهذه الصيغة، لذا فهي أقل سهولةً في الوصول إليها بالنسبة للمبرمجين مقارنةً بالصيغة القائمة على العناصر.

هناك سمتان مميزتان تميزان DTD عن أنواع المخططات الأخرى وهما الدعم النحوي لتضمين DTD داخل مستندات XML وتعريف الكيانات ، وهي عبارة عن أجزاء عشوائية من النص أو العلامات التي يقوم معالج XML بإدراجها في DTD نفسه وفي مستند XML أينما تمت الإشارة إليها، مثل الهروب من الأحرف.

لا تزال تقنية DTD مستخدمة في العديد من التطبيقات بسبب انتشارها الواسع.

مخطط

لغة مخططات XML، التي وصفها اتحاد شبكة الويب العالمية (W3C) بأنها خليفة تعريفات نوع المستند (DTD)، هي لغة مخططات أحدث ، ويُشار إليها غالبًا بالاختصار XSD (تعريف مخطط XML). تتميز XSD بقدرات فائقة مقارنةً بـ DTD في وصف لغات XML، إذ تستخدم نظامًا متطورًا لأنواع البيانات، وتتيح فرض قيود أكثر تفصيلًا على البنية المنطقية لمستند XML. كما تستخدم XSD تنسيقًا قائمًا على XML، مما يُسهّل استخدام أدوات XML العادية لمعالجتها.

عنصر xs:schema الذي يُعرّف مخططًا:

<?xml version="1.0" encoding="UTF-8" ?> <xs:schema xmlns:xs= "http://www.w3.org/2001/XMLSchema" ></xs:schema>

استرخِ

تم تحديد لغة RELAX NG (اللغة المنتظمة للجيل التالي من XML) مبدئيًا من قِبل منظمة OASIS ، وهي الآن معيار (الجزء 2: التحقق من صحة ISO/IEC 19757 – DSDL باستخدام القواعد النحوية المنتظمة ). يمكن كتابة مخططات RELAX NG إما باستخدام صيغة XML أو صيغة أخرى أكثر اختصارًا غير XML؛ الصيغتان متماثلتان ، ويمكن لأداة التحويل Trang ، التي طورها جيمس كلارك ، التحويل بينهما دون فقدان أي معلومات. تتميز RELAX NG بإطار تعريف وتحقق أبسط من XML Schema، مما يجعلها أسهل استخدامًا وتطبيقًا. كما أنها تدعم استخدام إضافات إطار عمل أنواع البيانات ؛ فعلى سبيل المثال، يمكن لمؤلف مخطط RELAX NG اشتراط توافق القيم في مستند XML مع تعريفات أنواع بيانات XML Schema.

شيماترون

Schematron هي لغة تُستخدم للتحقق من وجود أو عدم وجود أنماط في مستند XML. وتستخدم عادةً تعبيرات XPath . أصبحت Schematron الآن معيارًا (الجزء 3: التحقق القائم على القواعد من ISO/IEC 19757 – DSDL ).

لغة DSDL ولغات المخططات الأخرى

لغة تعريف مخططات المستندات ( DSDL ) هي معيار ISO/IEC متعدد الأجزاء (ISO/IEC 19757) يجمع مجموعة شاملة من لغات المخططات الصغيرة، كل منها مصممة لحل مشكلات محددة. تتضمن DSDL صيغة RELAX NG الكاملة والمختصرة، ولغة تأكيد Schematron ، ولغات لتعريف أنواع البيانات، وقيود مجموعة الأحرف، وإعادة تسمية الكيانات وتوسيعها، وتوجيه أجزاء المستندات إلى جهات التحقق المختلفة بناءً على مساحة الاسم. لا تحظى لغات مخططات DSDL بدعم الموردين الذي تحظى به مخططات XML حتى الآن، وهي إلى حد ما رد فعل من الناشرين الصناعيين على عدم جدوى مخططات XML في النشر .

لا تقتصر بعض لغات المخططات على وصف بنية تنسيق XML معين فحسب، بل توفر أيضًا إمكانيات محدودة للتأثير على معالجة ملفات XML الفردية المتوافقة مع هذا التنسيق. تتمتع كل من DTD و XSD بهذه الإمكانية؛ إذ يمكنها، على سبيل المثال، توفير خاصية توسيع مجموعة المعلومات والقيم الافتراضية للسمات. أما RELAX NG و Schematron فلا توفران هذه الإمكانيات عمدًا.

تم تطوير مجموعة من المواصفات المرتبطة ارتباطًا وثيقًا بـ XML، بدءًا من وقت قصير بعد النشر الأولي لـ XML 1.0. وكثيرًا ما يُستخدم مصطلح "XML" للإشارة إلى XML جنبًا إلى جنب مع واحدة أو أكثر من هذه التقنيات الأخرى التي أصبحت تُعتبر جزءًا من جوهر XML.

  • تُمكّن مساحات أسماء XML المستند نفسه من احتواء عناصر وسمات XML مأخوذة من مفردات مختلفة، دون حدوث أي تضارب في التسمية . ورغم أن مساحات أسماء XML ليست جزءًا من مواصفات XML نفسها، إلا أن جميع برامج XML تقريبًا تدعمها.
  • يحدد XML Basexml:base السمة التي يمكن استخدامها لتعيين الأساس لحل مراجع URI النسبية ضمن نطاق عنصر XML واحد.
  • مجموعة معلومات XML أو XML Infoset هي نموذج بيانات مجرد لوثائق XML من حيث عناصر المعلومات . تُستخدم مجموعة المعلومات بشكل شائع في مواصفات لغات XML، لتسهيل وصف القيود المفروضة على بنيات XML التي تسمح بها تلك اللغات.
  • لغة XSL (لغة أنماط التنسيق القابلة للتوسيع) هي عائلة من اللغات المستخدمة لتحويل وعرض مستندات XML، وتنقسم إلى ثلاثة أجزاء:
    • XSLT (تحويلات XSL)، هي لغة XML تُستخدم لتحويل مستندات XML إلى مستندات XML أخرى أو إلى تنسيقات أخرى مثل HTML أو نص عادي أو XSL-FO. ترتبط XSLT ارتباطًا وثيقًا بـ XPath، التي تستخدمها لمعالجة مكونات مستند XML المُدخل، وخاصة العناصر والخصائص.
    • XSL-FO (كائنات تنسيق XSL)، وهي لغة XML لعرض مستندات XML، وتستخدم غالبًا لإنشاء ملفات PDF.
    • لغة XPath (لغة مسار XML)، هي لغة غير XML تُستخدم للوصول إلى مكونات (العناصر، والخصائص، وما إلى ذلك) مستند XML. تُستخدم XPath على نطاق واسع في مواصفات XML الأساسية الأخرى وفي مكتبات البرمجة للوصول إلى البيانات المشفرة بتنسيق XML.
  • XQuery (استعلام XML) هي لغة استعلام XML متجذرة بقوة في XPath و XML Schema. وهي توفر طرقًا للوصول إلى XML ومعالجته وإرجاعه، وهي مصممة بشكل أساسي كلغة استعلام لقواعد بيانات XML .
  • تحدد ميزة التوقيع الرقمي XML قواعد بناء الجملة والمعالجة لإنشاء التوقيعات الرقمية على محتوى XML.
  • يحدد تشفير XML قواعد بناء الجملة والمعالجة لتشفير محتوى XML.
  • يحدد نموذج XML (الجزء 11: ارتباط المخطط من ISO/IEC 19757 – DSDL ) وسيلة لربط أي مستند XML بأي من أنواع المخططات المذكورة أعلاه .

فشلت بعض المواصفات الأخرى التي تم تصميمها كجزء من "XML Core" في الحصول على اعتماد واسع النطاق، بما في ذلك XInclude و XLink و XPointer .

واجهات البرمجة

تتضمن أهداف تصميم لغة XML ما يلي: "تسهيل كتابة البرامج التي تعالج مستندات XML". [ 6 ] ومع ذلك، لا تتضمن مواصفات XML أي معلومات تقريبًا حول كيفية قيام المبرمجين بهذه المعالجة. توفر مواصفات XML Infoset مصطلحات للإشارة إلى العناصر الموجودة داخل مستند XML، لكنها لا تقدم أي إرشادات حول كيفية الوصول إلى هذه المعلومات. وقد تم تطوير واستخدام مجموعة متنوعة من واجهات برمجة التطبيقات (APIs) للوصول إلى XML، وتم توحيد بعضها.

تميل واجهات برمجة التطبيقات الحالية لمعالجة XML إلى أن تندرج ضمن هذه الفئات:

  • واجهات برمجة التطبيقات الموجهة نحو التدفق والتي يمكن الوصول إليها من لغة برمجة، على سبيل المثال SAX و StAX .
  • واجهات برمجة تطبيقات اجتياز الشجرة التي يمكن الوصول إليها من لغة برمجة، على سبيل المثال DOM .
  • ربط بيانات XML ، الذي يوفر ترجمة آلية بين مستند XML وكائنات لغة البرمجة.
  • لغات التحويل التصريحية مثل XSLT و XQuery .
  • امتدادات بناء الجملة للغات البرمجة ذات الأغراض العامة، على سبيل المثال LINQ و Scala .

تتطلب الواجهات البرمجية الموجهة نحو تدفق البيانات ذاكرة أقل، وهي أسرع وأبسط من البدائل الأخرى في بعض المهام التي تعتمد على اجتياز خطي لمستند XML. بينما تتطلب واجهات برمجة التطبيقات الخاصة باجتياز الشجرة وربط البيانات عادةً استخدام ذاكرة أكبر بكثير، إلا أنها غالبًا ما تكون أكثر ملاءمة للمبرمجين؛ إذ تتضمن بعضها استرجاعًا تصريحيًا لمكونات المستند باستخدام تعبيرات XPath.

صُممت لغة XSLT لوصف تحويلات مستندات XML وصفًا تصريحيًا، وقد تم تطبيقها على نطاق واسع في كل من حزم جانب الخادم ومتصفحات الويب. تتداخل وظائف XQuery مع XSLT، ولكنها مصممة بشكل أكبر للبحث في قواعد بيانات XML الكبيرة .

واجهة برمجة تطبيقات بسيطة لـ XML

واجهة برمجة التطبيقات البسيطة لـ XML (SAX) هي واجهة برمجة تطبيقات معجمية تعتمد على الأحداث ، حيث تُقرأ المستندات بشكل تسلسلي، ويتم الإبلاغ عن محتوياتها كردود استدعاء لأساليب مختلفة في كائن معالج من تصميم المستخدم. تتميز SAX بسرعة وكفاءة التنفيذ، ولكن يصعب استخدامها لاستخراج المعلومات عشوائيًا من XML، لأنها تُثقل كاهل مطور التطبيق بتتبع الجزء الذي تتم معالجته من المستند. وهي أنسب للحالات التي تُعالج فيها أنواع معينة من المعلومات دائمًا بنفس الطريقة، بغض النظر عن مكان وجودها في المستند.

تحليل السحب

تُعامل عملية تحليل السحب المستند كسلسلة من العناصر تُقرأ بالتسلسل باستخدام نمط تصميم المُكرِّر . يتيح ذلك كتابة مُحلِّلات انحدارية متكررة، حيث يعكس هيكل الكود المُنفِّذ للتحليل هيكل XML المُراد تحليله، ويمكن استخدام نتائج التحليل الوسيطة والوصول إليها كمتغيرات محلية داخل الدوال المُنفِّذة للتحليل، أو تمريرها (كمعاملات دالة) إلى دوال ذات مستوى أدنى، أو إرجاعها (كقيم إرجاع دالة) إلى دوال ذات مستوى أعلى. [ 27 ] تتضمن أمثلة مُحلِّلات السحب Data::Edit::Xmlفي لغة بيرل ، وStAX في لغة جافا ، وXMLPullParser في لغة سمول توك ، وXMLReader في لغة PHP ، وSmartXML ElementTree.iterparseفي لغة بايثون ، وSmartXML في لغة Red ، وواجهة برمجة تطبيقات اجتياز DOM .System.Xml.XmlReaderNodeIteratorTreeWalker

يُنشئ محلل السحب مُكرِّرًا يزور بالتسلسل العناصر والخصائص والبيانات المختلفة في مستند XML. يمكن للبرنامج الذي يستخدم هذا المُكرِّر اختبار العنصر الحالي (لتحديد ما إذا كان، على سبيل المثال، علامة بداية أو علامة نهاية، أو نصًا)، وفحص خصائصه (الاسم المحلي، ومساحة الاسم ، وقيم خصائص XML، وقيمة النص، وما إلى ذلك)، كما يمكنه أيضًا نقل المُكرِّر إلى العنصر التالي. وبالتالي، يستطيع البرنامج استخراج المعلومات من المستند أثناء اجتيازه. يميل أسلوب الانحدار التكراري إلى الاحتفاظ بالبيانات كمتغيرات محلية مُحددة النوع في البرنامج الذي يقوم بالتحليل، بينما يتطلب SAX، على سبيل المثال، عادةً من المحلل الاحتفاظ يدويًا بالبيانات الوسيطة ضمن مجموعة من العناصر التي تُعد عناصر أصلية للعنصر الذي يتم تحليله. قد يكون فهم وصيانة كود تحليل السحب أسهل من كود تحليل SAX.

نموذج كائن المستند

نموذج كائن المستند ( DOM) هو واجهة تسمح بتصفح المستند بأكمله كما لو كان شجرة من كائنات العقد التي تمثل محتويات المستند. يمكن إنشاء مستند DOM بواسطة محلل، أو يمكن للمستخدمين إنشاؤه يدويًا (مع بعض القيود). أنواع البيانات في عقد DOM مجردة؛ وتوفر التطبيقات روابط خاصة بها خاصة بلغة البرمجة . تميل تطبيقات DOM إلى استهلاك الذاكرة بكثافة، حيث تتطلب عادةً تحميل المستند بأكمله في الذاكرة وبنائه كشجرة من الكائنات قبل السماح بالوصول إليه.

ربط البيانات

ربط بيانات XML هو أسلوب لتبسيط تطوير التطبيقات التي تتطلب التعامل مع مستندات XML. يتضمن هذا الأسلوب ربط مستند XML بتسلسل هرمي من الكائنات ذات الأنواع المحددة بدقة، بدلاً من استخدام الكائنات العامة التي يُنشئها محلل DOM. غالبًا ما يكون الكود الناتج أسهل في القراءة والصيانة، كما يُساعد في تحديد المشكلات أثناء الترجمة بدلاً من وقت التشغيل. يُعد ربط بيانات XML مناسبًا بشكل خاص للتطبيقات التي تكون فيها بنية المستند معروفة وثابتة عند كتابة التطبيق. من خلال إنشاء تمثيل ذي أنواع محددة بدقة لبيانات XML، يُمكن للمطورين الاستفادة من بيئات التطوير المتكاملة الحديثة (IDEs) التي تُوفر ميزات مثل الإكمال التلقائي، وإعادة هيكلة الكود، وتمييز الكود. يُسهل هذا كتابة كود صحيح وفعال، ويُقلل من مخاطر الأخطاء. من أمثلة أنظمة ربط البيانات: بنية جافا لربط XML (JAXB)، وتسلسل XML في إطار عمل .NET ، [ 28 ] وتسلسل XML في gSOAP .

XML كنوع بيانات

ظهرت لغة XML كنوع بيانات أساسي في لغات أخرى. يُعرّف امتداد ECMAScript لـ XML (E4X) للغة ECMAScript /JavaScript كائنين محددين (XML وXMLList) في JavaScript، يدعمان عقد مستندات XML وقوائم عقد XML ككائنات منفصلة، ​​ويستخدمان صيغة النقطة لتحديد علاقات الأصل والفرع. [ 29 ] يدعم متصفح Mozilla 2.5 والإصدارات الأحدث (مع أنه أصبح قديمًا الآن) وAdobe Actionscript امتداد E4X ، لكنه لم يُعتمد على نطاق واسع. تُستخدم صيغ مشابهة في تطبيق LINQ من Microsoft لـ Microsoft .NET 3.5 والإصدارات الأحدث، وفي Scala (التي تستخدم Java VM). وبالمثل، يتعامل تطبيق xmlsh مفتوح المصدر، الذي يوفر واجهة سطر أوامر شبيهة بنظام Linux مع ميزات خاصة لمعالجة XML، مع XML كنوع بيانات، باستخدام صيغة <[ ]>. [ 30 ] يُعرّف إطار عمل وصف الموارد (REF) نوع بيانات rdf:XMLLiteralلحفظ XML المُغلّف والمتوافق مع المعايير . [ 31 ] أنتجت فيسبوك امتدادات للغات PHP و JavaScript تضيف XML إلى بناء الجملة الأساسي بطريقة مشابهة لـ E4X، وهي XHP و JSX على التوالي.

تاريخ

XML هو ملف تعريف تطبيقي لـ SGML (ISO 8879). [ 32 ]

أدرك ناشرو الوسائط الرقمية الأوائل في أواخر ثمانينيات القرن الماضي، قبل ظهور الإنترنت، مدى تنوع استخدامات لغة SGML في عرض المعلومات الديناميكية. [ 22 ] [ 33 ] وبحلول منتصف التسعينيات، اكتسب بعض ممارسي SGML خبرةً في شبكة الويب العالمية (WWW) التي كانت حديثة العهد آنذاك ، واعتقدوا أن SGML تقدم حلولًا لبعض المشكلات التي يُحتمل أن تواجهها شبكة الويب مع نموها. أضاف دان كونولي SGML إلى قائمة أنشطة اتحاد شبكة الويب العالمية (W3C) عندما انضم إلى فريق العمل عام 1995؛ وبدأ العمل في منتصف عام 1996 عندما وضع جون بوساك ، مهندس شركة صن مايكروسيستمز، ميثاقًا وجنّد متعاونين. كان بوساك يتمتع بعلاقات واسعة في مجتمع صغير من الأشخاص ذوي الخبرة في كلٍ من SGML وشبكة الويب. [ 34 ]

تم تجميع لغة XML بواسطة فريق عمل مكون من أحد عشر عضوًا، [ 35 ] بدعم من مجموعة اهتمام تضم (حوالي) 150 عضوًا. دارت مناقشات فنية على القائمة البريدية لمجموعة الاهتمام، وتم حل المشكلات بالتوافق، أو بتصويت أغلبية أعضاء فريق العمل في حال تعذر ذلك. قام مايكل سبيربيرغ-ماكوين بتجميع سجل لقرارات التصميم وأسبابها في 4 ديسمبر 1997. [ 36 ] شغل جيمس كلارك منصب القائد الفني لفريق العمل، وساهم بشكل ملحوظ في صياغة العناصر الفارغة واقتراح اسم "XML". من بين الأسماء الأخرى التي طُرحت للنظر فيها: "MAGMA" (البنية الدنيا لتطبيقات الترميز المعمم)، و"SLIM" (اللغة المهيكلة لترميز الإنترنت)، و"MGML" (لغة الترميز المعمم الدنيا). [ 37 ] كان تيم براي ومايكل سبيربيرغ-ماكوين هما المحرران المشاركان للمواصفات في الأصل . في منتصف المشروع، قبل براي مهمة استشارية مع نتسكيب ، مما أثار احتجاجات شديدة من مايكروسوفت. وطُلب من براي الاستقالة مؤقتًا من منصب رئيس التحرير. وأدى ذلك إلى خلاف حاد في فريق العمل، تم حله في النهاية بتعيين جان باولي من مايكروسوفت كمحرر مشارك ثالث. [ 38 ]<empty />

تواصل فريق عمل XML بشكل أساسي عبر البريد الإلكتروني والمؤتمرات الهاتفية الأسبوعية. وتم التوصل إلى قرارات التصميم الرئيسية خلال فترة عمل مكثفة قصيرة بين أغسطس ونوفمبر 1996، [ 39 ] حيث نُشرت المسودة الأولى لمواصفات XML. [ 40 ] واستمر العمل على التصميم خلال عام 1997، وأصبحت XML 1.0 توصية من اتحاد شبكة الويب العالمية (W3C) في 10 فبراير 1998.

مصادر

لغة XML هي ملف تعريف لمعيار ISO، SGML، ومعظم خصائص XML مستمدة من SGML دون تغيير. من SGML يأتي فصل البنى المنطقية عن البنى المادية (العناصر والكيانات)، وتوافر التحقق القائم على القواعد (DTDs)، وفصل البيانات عن البيانات الوصفية (العناصر والسمات)، والمحتوى المختلط، وفصل المعالجة عن التمثيل ( تعليمات المعالجة )، وبنية الأقواس الزاوية الافتراضية. تم حذف تعريف SGML؛ وبالتالي، فإن XML لها مجموعة فواصل ثابتة وتعتمد Unicode كمجموعة أحرف للمستند .

من المصادر التقنية الأخرى لـ XML مبادرة ترميز النصوص ( TEI )، التي حددت ملف تعريف SGML لاستخدامه كـ "صيغة نقل"، و HTML . وشكّل مشروع ERCS (صيغة المرجع الملموسة الموسعة) التابع لمشروع SPREAD (مشروع التقييس المتعلق بوثائق شرق آسيا) التابع لمجموعة خبراء معالجة الوثائق في الصين واليابان وكوريا التابعة لمنظمة ISO، أساس قواعد تسمية XML 1.0؛ كما قدّم SPREAD مراجع الأحرف الرقمية السداسية عشرية ومفهوم المراجع لإتاحة جميع أحرف Unicode. ولتحسين دعم ERCS وXML وHTML، نُقّح معيار SGML، IS 8879، في عامي 1996 و1998 مع تعديلات WebSGML.

تضمنت الأفكار الجديدة في لغة XML التي طُرحت خلال المناقشات خوارزمية اكتشاف الترميز ورأس الترميز، وهدف تعليمات المعالجة، وسمة xml:space، وفاصل الإغلاق الجديد لعلامات العناصر الفارغة. وقد تمّت صياغة مفهوم سلامة البنية، على عكس الصلاحية (التي تُمكّن من التحليل دون مخطط)، لأول مرة في لغة XML، على الرغم من أنه قد طُبّق بنجاح في برنامج "Dynatext" التابع لشركة Electronic Book Technology؛ [ 41 ] وبرنامج مشروع قاموس أكسفورد الإنجليزي الجديد التابع لجامعة واترلو؛ ومعالج النصوص RISP LISP SGML في شركة Uniscope بطوكيو؛ ونظام IADS للنصوص التشعبية التابع لقيادة صواريخ الجيش الأمريكي؛ وبرنامج Mentor Graphics Context؛ وبرنامج Interleaf ونظام Xerox للنشر.

الإصدارات

1.0 و 1.1

تم تعريف الإصدار الأول (XML 1.0) في عام 1998. وقد خضع لتعديلات طفيفة منذ ذلك الحين، دون أن يتم منحه رقم إصدار جديد، وهو حاليًا في إصداره الخامس، كما تم نشره في 26 نوفمبر 2008. وهو مطبق على نطاق واسع ولا يزال يوصى به للاستخدام العام.

نُشر الإصدار الثاني (XML 1.1) لأول مرة في 4 فبراير 2004، وهو نفس يوم نشر الإصدار الثالث من XML 1.0، [ 42 ] وهو حاليًا في طبعته الثانية، كما نُشر في 16 أغسطس 2006. يحتوي هذا الإصدار على ميزات (بعضها مثير للجدل) تهدف إلى تسهيل استخدام XML في حالات معينة. [ 43 ] تتمثل التغييرات الرئيسية في تمكين استخدام أحرف نهاية الأسطر المستخدمة في منصات EBCDIC ، واستخدام النصوص والأحرف غير الموجودة في Unicode 3.2. لا يُستخدم XML 1.1 على نطاق واسع، ويُنصح باستخدامه فقط لمن يحتاجون إلى ميزاته الخاصة. [ 44 ]

قبل إصدار النسخة الخامسة، اختلف XML 1.0 عن XML 1.1 في فرضه متطلبات أكثر صرامة على الأحرف المتاحة للاستخدام في أسماء العناصر والخصائص والمعرفات الفريدة: ففي الإصدارات الأربعة الأولى من XML 1.0، كانت الأحرف تُعدّ حصريًا باستخدام إصدار محدد من معيار يونيكود (من يونيكود 2.0 إلى يونيكود 3.2). أما النسخة الخامسة، فقد استبدلت آلية XML 1.1، وهي آلية أكثر ملاءمة للمستقبل مع تقليل التكرار . ويتمثل النهج المتبع في النسخة الخامسة من XML 1.0، وفي جميع إصدارات XML 1.1، في حظر استخدام أحرف معينة فقط في الأسماء، والسماح باستخدام جميع الأحرف الأخرى لاستيعاب الأحرف المناسبة في إصدارات يونيكود المستقبلية. في النسخة الخامسة، قد تحتوي أسماء XML على أحرف من نصوص بالية ، أو تشام ، أو فينيقية، بالإضافة إلى العديد من النصوص الأخرى التي أُضيفت إلى يونيكود منذ يونيكود 3.2. [ 43 ]

يمكن استخدام أي رمز يونيكود تقريبًا في بيانات الأحرف وقيم السمات في مستند XML 1.0/1.1، حتى لو لم يكن الحرف المقابل لهذا الرمز مُعرّفًا في الإصدار الحالي من يونيكود. يسمح XML 1.1 باستخدام عدد أكبر من رموز التحكم مقارنةً بـ XML 1.0 في بيانات الأحرف وقيم السمات، ولكن لضمان المتانة، يجب التعبير عن معظم رموز التحكم المُضافة في XML 1.1 كمراجع رقمية للأحرف (حتى الرموز من #x7F إلى #x9F، التي كانت مسموحة في XML 1.0، يُشترط في XML 1.1 التعبير عنها كمراجع رقمية للأحرف [ 43 ] ). من بين رموز التحكم المدعومة في XML 1.1 رمزان لفاصل الأسطر يجب التعامل معهما كأحرف مسافة بيضاء، وهما رمزا التحكم الوحيدان اللذان يمكن كتابتهما مباشرةً.

2.0

دار نقاش حول إصدار XML 2.0، مع أن أي منظمة لم تعلن عن خطط للعمل على هذا المشروع. يحتوي مشروع XML-SW (اختصارًا لـ skunkworks )، الذي كتبه أحد المطورين الأصليين لـ XML، [ 45 ] على بعض المقترحات حول الشكل الذي قد يبدو عليه XML 2.0، بما في ذلك حذف تعريفات نوع المستند (DTD) من بناء الجملة، بالإضافة إلى دمج مساحات أسماء XML ، وقاعدة بيانات XML ، ومجموعة معلومات XML في المعيار الأساسي.

MicroXML

في عام ٢٠١٢، شكّل جيمس كلارك (المسؤول التقني عن مجموعة عمل XML) وجون كوان (محرر مواصفات XML 1.1) مجموعة مجتمع MicroXML ضمن اتحاد شبكة الويب العالمية (W3C)، ونشرا MicroXML، وهي مواصفات لمجموعة فرعية مُصغّرة بشكل كبير من XML. [ ٤٦ ] توفر MicroXML بنية أساسية أبسط بكثير من خلال إزالة العديد من ميزات XML الكاملة، مثل تعريفات أنواع المستندات وأقسام CDATA، [ ٢١ ] مع ضمان صحة مساحة أسماء XML عن طريق منع الأسماء التي تتعارض مع بادئات مساحة الأسماء.

XML ثنائي

نظراً لطول بيانات XML النصية، تم اقتراح العديد من الصيغ الثنائية كتمثيلات مختصرة لها: نُشرت صيغة Fast Infoset ، المستندة إلى ASN.1 ، كمعيار دولي من قِبل الاتحاد الدولي للاتصالات (ITU-T) في عام 2005، ولاحقاً من قِبل المنظمة الدولية للمعايير (ISO ). أما صيغة Efficient XML Interchange (EXI)، وهي صيغة XML ثنائية طورتها شركة AgileDelta في الأصل، فقد اعتُمدت كتوصية من قِبل اتحاد شبكة الويب العالمية (W3C) في عام 2011، مع إصدار طبعة ثانية منها في عام 2014.

نقد

لطالما تعرضت لغة XML وامتداداتها لانتقادات بسبب الإسهاب والتعقيد والتكرار. [ 47 ]

قد يكون ربط نموذج الشجرة الأساسي للغة XML بأنظمة أنواع لغات البرمجة أو قواعد البيانات أمرًا صعبًا، لا سيما عند استخدام XML لتبادل البيانات عالية التنظيم بين التطبيقات، وهو ما لم يكن هدف تصميمها الأساسي. مع ذلك، تتيح أنظمة ربط بيانات XML للتطبيقات الوصول إلى بيانات XML مباشرةً من كائنات تُمثل بنية البيانات في لغة البرمجة المستخدمة، مما يضمن سلامة الأنواع ، بدلًا من استخدام DOM أو SAX لاسترجاع البيانات من تمثيل مباشر لـ XML نفسه. ويتحقق ذلك من خلال إنشاء ربط تلقائي بين عناصر مخطط XML (XSD) للمستند وأعضاء فئة يتم تمثيلها في الذاكرة.

وتحاول انتقادات أخرى دحض الادعاء بأن لغة XML هي لغة تصف نفسها [ 48 ] (على الرغم من أن مواصفات XML نفسها لا تقدم مثل هذا الادعاء).

تُقترح صيغ JSON و YAML و S-Expressions بشكل متكرر كبدائل أبسط (انظر مقارنة صيغ تسلسل البيانات ) [ 49 ] ، حيث تركز على تمثيل البيانات عالية التنظيم بدلاً من المستندات التي قد تحتوي على محتوى عالي التنظيم ومحتوى غير منظم نسبيًا. مع ذلك، توفر مواصفات مخطط XML الموحدة من W3C نطاقًا أوسع من أنواع بيانات XSD المنظمة مقارنةً بصيغ التسلسل الأبسط، كما توفر نمطية وإمكانية إعادة الاستخدام من خلال مساحات أسماء XML .

انظر أيضاً

ملحوظات

  1. أي أن علامات الاقتباس المضمنة ستكون مشكلة
  2. ومن الأمثلة الشائعة على ذلكأسماء فئات أو معرفات CSS .

مراجع

الاقتباسات

  1. تومسون، هـ.؛ ليلي، س. (يوليو 2014). أنواع وسائط XML . فريق عمل هندسة الإنترنت. doi : 10.17487/RFC7303 . RFC 7303 .
  2. براي وآخرون (2008) .
  3. براي، ت.؛ باولي، ج.؛ سبيربيرغ-ماكوين، س.م.، محرران. (10 فبراير 1998). "لغة الترميز القابلة للتوسيع (XML) 1.0" (توصية W3C) (الطبعة الأولى ). W3C. مؤرشف من الأصل في 20 أبريل 2024. تم الاطلاع عليه في 31 أكتوبر 2019 . 
  4. بيكاكس، ن.؛ تسيناراكي، س.؛ جيولداسيس، ن.؛ ستافراكانتوناكيس، إ.؛ كريستودولاكيس، س. (2013). "عالم XML والويب الدلالي: التقنيات، والتوافقية، والتكامل: دراسة استقصائية لأحدث التقنيات" . في: أناغنوستوبولوس، إ.؛ بيليكوفا، م.؛ ميلوناس، ب.؛ تساباتسوليس، ن. (محررون). التكيف الدلالي للوسائط المتعددة/الفائقة: المخططات والتطبيقات . دراسات في الذكاء الحسابي. المجلد 418. برلين: سبرينغر. الصفحات 319-360 . doi : 10.1007/978-3-642-28977-4_12 . ISBN   978-3-642-28977-4.
  5. "رخصة المستند - إصدار 2015" . W3C . تم الاطلاع عليه بتاريخ 24 يوليو 2020 .
  6. 1 2 براي وآخرون. (2008) ، القسم 1.1.
  7. فينيل، فيليب (يونيو 2013). "أقصى حدود لغة XML" . XML London 2013 8: 80–86 . doi : 10.14337/XMLLondon13.Fennell01 (غير نشط في 12 يوليو 2025). ISBN 978-0-9926471-0-0تمت أرشفة هذا النص من المصدر الأصلي في 1 مارس 2023.{{cite journal}}: صيانة CS1: تم تعطيل DOI اعتبارًا من يوليو 2025 ( رابط )
  8. 1 2 لوشين، ب.؛ لينثيكوم، د.؛ جيزا، م. (أكتوبر 2021). "ما هي لغة الترميز القابلة للتوسيع (XML)؟" . TechTarget WhatIs . Informa.
  9. دايكس (2005) ، ص. 1.
  10. 1 2 دايكس (2005) ، ص. 11.
  11. 1 2 دايكس (2005) ، ص. 135.
  12. كوفر، روبن (محرر). "تطبيقات ومبادرات لغة XML" . صفحات غلاف XML . مؤرشف من الأصل في 2 مايو 2024. تم الاطلاع عليه في 16 نوفمبر 2017 .
  13. المنظمة العالمية للأرصاد الجوية (WMO) (2023). دليل الرموز، المجلد الأول.3 - الرموز الدولية، الملحق الثاني للوائح الفنية للمنظمة العالمية للأرصاد الجوية، الجزء د - التمثيلات المستمدة من نماذج البيانات (دليل). الوثائق الأساسية رقم 2. جنيف: المنظمة العالمية للأرصاد الجوية. ص 272. ISBN  978-92-63-10306-2.
  14. ^ براي وآخرون. (2008) ، القسم 2.2.
  15. ^ براي وآخرون. (2006) ، القسم 2.2.
  16. براي، ت. (26 أبريل 2003). "الأحرف مقابل البايتات" . Tbray.org . مؤرشف من الأصل في 26 أكتوبر 2007. تم الاطلاع عليه في 16 نوفمبر 2017 .
  17. براي وآخرون (2008) ، الملحق F.
  18. ^ براي وآخرون. (2008) ، القسم 2.3.
  19. تكسين، تكس؛ يرجو، فرانسوا (6 سبتمبر 2003). "أسئلة وأجوبة W3C حول التدويل: HTML وXHTML وXML ورموز التحكم" . تدويل W3C . W3C. مؤرشف من الأصل في 13 ديسمبر 2018. تم الاطلاع عليه في 16 نوفمبر 2017 .
  20. ^ براي وآخرون. (2008) ، القسم 2.5.
  21. 1 2 ستورنبرغ، مايك (فبراير 2013). إلى أين تتجه لغة XML؟ تاريخها وتوجهاتها المستقبلية المحتملة . مؤتمر XML براغ 2013 (ملف PDF) . براغ. الصفحات 141-162 . ISBN  978-80-260-3872-6.
  22. 1 2 غراي، جيم (1 فبراير 2005). "حوار مع تيم براي: البحث عن طرق لترويض مخازن المعلومات الهائلة في العالم" . ACM Queue . 3 (1): 20-25 . doi : 10.1145/1046931.1046941 . S2CID 23502115 . 
  23. بيلغريم، مارك (6 أغسطس 2010). HTML5: جاهز للعمل: الغوص في مستقبل تطوير الويب . أورايلي. ص 10. ISBN  978-1-4493-9966-5.
  24. «لا توجد استثناءات لقانون بوستل [ الغوص في العلامة ] » . DiveIntoMark.org . مؤرشف من الأصل بتاريخ 14 مايو 2011. تم الاطلاع عليه بتاريخ 22 أبريل 2013 .
  25. هارولد ومينز (2002) ، ص 29.
  26. هارولد ومينز (2002) ، ص 8.
  27. دوشارم، بوب. "ادفع، اسحب، التالي!" . Xml.com . مؤرشف من الأصل في 12 مايو 2008. تم الاطلاع عليه في 16 نوفمبر 2017 .
  28. أوباسانجو، دار (30 يونيو 2006). "تسلسل XML في إطار عمل .NET" . شبكة مطوري مايكروسوفت . تم الاطلاع عليه في 31 يوليو 2009 .
  29. "معالجة XML باستخدام E4X" . مركز مطوري موزيلا . مؤسسة موزيلا. مؤرشف من الأصل بتاريخ 1 مايو 2011. تم الاطلاع عليه بتاريخ 27 يوليو 2010 .
  30. "XML Shell: Core Syntax" . Xmlsh.org . 13 مايو 2010. مؤرشف من الأصل في 3 مايو 2010. تم الاطلاع عليه في 22 أغسطس 2010 .
  31. كلاين، جي؛ كارول، جي جي، محرران. (10 فبراير 2004). "إطار وصف الموارد (RDF): المفاهيم والبنية المجردة" (توصية W3C) . W3C. القسم 5.1.
  32. "ISO/IEC 19757-3" (ملف PDF) . ISO / IEC . 1 يونيو 2006. ص. 6. تم الاطلاع عليه في 1 يناير 2025 . 
  33. أمبرون، سوآن وهوبر، كريستينا، محرران (1988). "الناشرون والوسائط المتعددة والتفاعلية". الوسائط المتعددة التفاعلية . مجموعة كوب. ISBN 1-55615-124-1.
  34. كيمبر، دبليو. إليوت (26 نوفمبر 2006). "XML: الذكرى السنوية العاشرة" . مقالات دكتور ماكرو حول XML . تم الاطلاع عليه بتاريخ 16 نوفمبر 2017 .
  35. كان يُطلق على فريق العمل في الأصل اسم "مجلس المراجعة التحريرية". تم إدراج الأعضاء الأصليين والسبعة الذين تمت إضافتهم قبل اكتمال الطبعة الأولى في نهاية الطبعة الأولى من توصية XML ( براي، باولي وسبربيرغ -ماكوين 1998 ) .
  36. سبيربيرغ-ماكوين، سي إم، محرر. (4 ديسمبر 1997). "تقارير من مجلس مراجعة لغة SGML التابع لاتحاد شبكة الويب العالمية إلى مجموعة عمل SGML، ومن مجلس مراجعة لغة XML التابع لاتحاد شبكة الويب العالمية إلى مجموعة عمل XML" . اتحاد شبكة الويب العالمية . تم الاطلاع عليه في 31 يوليو 2009 .
  37. وارويك، سي.؛ بريتشارد، إي. (2000). "لغة ترميز النصوص "المُضخّمة". XML ومستقبل ترميز الويب . وقائع ASLIB . 52 (5): 174-184 . doi : 10.1108/EUM0000000007012 .
  38. مانشستر، ب. (15 فبراير 2008). "براي يستذكر فريق XML" . ذا ريجستر .
  39. بوساك، جون (12 أبريل 2003). "ميلاد لغة XML" . شبكة مطوري صن . مؤرشف من الأصل في 4 أغسطس 2012. تم الاطلاع عليه في 16 نوفمبر 2017 .
  40. براي، ت.؛ سبيربيرغ-ماكوين، سي إم، محرران. (14 نوفمبر 1996). "لغة الترميز القابلة للتوسيع (XML)" (مسودة عمل W3C) . W3C . تم الاسترجاع في 31 يوليو 2009 .
  41. بوساك، جون (12 يوليو 2006). الكلمة الختامية . مؤتمر XML 2006. مؤرشف من الأصل بتاريخ 11 يوليو 2007. تم الاطلاع عليه بتاريخ 31 يوليو 2009 .
  42. براي، ت.؛ باولي، ج.؛ سبيربيرغ-ماكوين، س.م.؛ مالر، إ.؛ يرجو، ف.، محررون. (4 فبراير 2004). "لغة الترميز القابلة للتوسيع (XML) 1.0" (توصية W3C) ( الطبعة الثالثة). W3C. 
  43. 1 2 3 براي وآخرون. (2006) ، القسم 1.3.
  44. هارولد، إليوت راستي (2004). لغة XML الفعالة . أديسون-ويسلي. الصفحات 10-19 . ISBN  0-321-15040-6.
  45. براي، تيم (10 فبراير 2002). "لغة الترميز القابلة للتوسيع، SW (XML-SW)" . Textuality .
  46. "مجموعة مجتمع MicroXML" . W3C . 2012-10-01 . تم الاطلاع عليه بتاريخ 2023-08-05 .
  47. "XML: ضريبة الأقواس الزاوية" . Codinghorror.com . 11 مايو 2008. مؤرشف من الأصل في 26 فبراير 2014. تم الاطلاع عليه في 16 نوفمبر 2017 .
  48. "أسطورة وصف XML ذاتيًا" (ملف PDF) . Workflow.HealthBase.info . سبتمبر 2003. تم الاطلاع عليه بتاريخ 16 نوفمبر 2017 .
  49. "ما البدائل العملية لصيغة XML التي تعرفها؟" . StackOverflow.com . تم الاطلاع عليه بتاريخ 16 نوفمبر 2017 .

فهرس

  • براي، ت.؛ باولي، ج.؛ سبيربيرغ-ماكوين، س.م.؛ مالر، إ.؛ ييرجيو، ف.، محررون. (26 نوفمبر 2008). "لغة الترميز القابلة للتوسيع (XML) 1.0" (توصية اتحاد شبكة الويب العالمية) (الطبعة الخامسة  ). اتحاد شبكة الويب العالمية. مؤرشف من الأصل في 22 مارس 2020. تم الاطلاع عليه في 3 يونيو 2024 .
  • براي، ت.؛ باولي، ج.؛ سبيربيرغ-ماكوين، س.م.؛ مالر، إ.؛ ييرجيو، ف.؛ كوان، ج.، محررون. (16 أغسطس 2006). "لغة الترميز القابلة للتوسيع (XML) 1.1" (توصية اتحاد شبكة الويب العالمية) (الطبعة الثانية  ). اتحاد شبكة الويب العالمية. مؤرشف من الأصل في 5 أبريل 2025. تم الاطلاع عليه في 4 مارس 2025 .
  • دايكس، لوسيندا (2005). لغة XML للمبتدئين (  الطبعة الرابعة). هوبوكين، نيوجيرسي: وايلي. ISBN 978-0-7645-8845-7.
  • هارولد، إي آر؛ مينز، دبليو إس (2002). لغة XML باختصار (  الطبعة الثانية). سيباستوبول، كاليفورنيا: أورايلي. ISBN 978-0-5960-0292-3.

للمزيد من القراءة

  • الملحق أ من ISO 8879:1986 (SGML)
  • كونينغهام، إل إيه (2005). "اللغة والصفقات والمعايير: مستقبل عقود XML". مجلة جامعة واشنطن للقانون . 84 (2): 313-373 . SSRN 900616 . 
  • بوساك، جون؛ براي، تيم (مايو 1999). "XML والجيل الثاني من الويب" . مجلة ساينتفك أمريكان . 280 (5): 89. رمز Bibcode : 1999SciAm.280e..89B . doi : 10.1038/scientificamerican0599-89 (غير نشط في 12 يوليو 2025). مؤرشف من الأصل في 1 أكتوبر 2009.{{cite journal}}: صيانة CS1: تم تعطيل DOI اعتبارًا من يوليو 2025 ( رابط )
  • كيلي، شون (6 فبراير 2006). "ارتكاب الأخطاء مع لغة XML" . Developer.com . مؤرشف من الأصل في 13 أبريل 2021.
  • سانت لوران، سيمون (12 فبراير 2003). "بعد خمس سنوات، لغة XML". مدونة أورايلي XML . أورايلي ميديا . مؤرشف من الأصل في 3 ديسمبر 2013. تم الاطلاع عليه في 26 أكتوبر 2010 .
  • "W3C XML is Ten!" . اتحاد شبكة الويب العالمية . ١٢ فبراير ٢٠٠٨. مؤرشف من الأصل في ١٢ فبراير ٢٠٢٢. تم الاطلاع عليه في ٢٦ أكتوبر ٢٠١٠ .
  • جينيفيس، بيير (أكتوبر 2012). "مقدمة إلى لغة XML" (ملف PDF) . شرائح الدورة التدريبية . مشروع WAM. مؤرشف (ملف PDF) من النسخة الأصلية بتاريخ 16 أكتوبر 2015.