العربية
  • XML
  • HTML
  • SAML
  • نقل البيانات

ما هو XML؟

XML هي لغة ترميز متعددة الاستخدامات لتنسيق ونقل البيانات. تتميز بعلامات قابلة للتخصيص، وهيكل هرمي، وتعريفات مخططات. على عكس HTML، يركز XML على تمثيل البيانات بدلاً من العرض. يُستخدم على نطاق واسع في التطبيقات المختلفة، بما في ذلك تكوينات SSO مثل تنفيذات Logto لـ SAML.

Darcy Ye
Darcy Ye
Developer

لغة الترميز القابلة للتوسع (XML) تستخدم علامات لتوضيح كيفية هيكلة وتخزين ونقل النصوص في ملفات البيانات. تم تصميم XML ليكون قابلاً للقراءة من قبل كل من البشر والآلات، مما يجعله أداة ترميز قوية وقابلة للتخصيص بشكل كبير.

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

مثال على محتوى XML

يتكون بيانات XML من نصوص في ملف رقمي. على غرار HTML، تقوم بإنشاء "الشيفرة" اللازمة لملفات XML بإدراج العلامات لتوضيح كيفية تفسير النص. على سبيل المثال:

يوضح هذا المثال ثلاثة مستخدمين. يتضمن محتوى XML الاسم واسم المستخدم والبريد الإلكتروني ومستوى المستخدم.

ينشئ هذا مستند XML يمكن مشاركته وقراءته بين موفري الهوية وموفري الموارد.

من المهم، أن المثال أعلاه يوضح الطبيعة الهرمية لمستندات XML. على سبيل المثال:

  • المحتوى في السطر الأول <?xml version="1.0" encoding="UTF-8"?> هو إعلان XML، الذي يحدد الإصدار والترميز
  • في مستند XML، يجب أن يكون هناك عنصر جذر، الذي في هذا المثال هو <users>
  • جميع العناصر الأخرى الموجودة داخل عنصر الجذر تُسمى "عناصر الطفل"
  • في المثال أعلاه، هناك 3 عناصر طفل، معلمة بعلامة <user>
  • داخل عناصر الطفل <user>، توجد عدة عناصر طفل أخرى، مثل <name> و <username> و <email> و <level>
  • على علامة <user>, هناك أيضًا id, والذي يُسمى سمة XML. لا يمكن أن يحتوي العنصر على سمات متعددة بنفس الاسم

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

ما هو مخطط XML؟

المخطط يعمل كـ "تعريف" لمستند XML. هذا يعني أنه يصف القواعد الرئيسية والقيود على بنية ملف XML، بالإضافة إلى التحكم في المحتوى وأنواع البيانات - التحكم في كيفية تفاعلها مع بعضها البعض في المستند. هذا يضمن حماية سلامة البيانات لـ XML في جميع الأوقات، حتى عند التعامل معها بين تطبيقات أو أنظمة مختلفة.

اللغات الرئيسية للمخطط هي تعريف نوع المستند (DTD) وتعريف مخطط XML (XSD). XSD هي اللغة الأكثر استخدامًا في مستندات XML نظرًا لمجموعة ميزاتها الغنية وقدرات أنواع البيانات القوية وأكثر من ذلك.

ما هي صيغة XML؟

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

XML مقابل HTML

إذا كنت معتادًا على HTML، فطريقة نشر ملفات XML باستخدام الترميز ستبدو مألوفة جدًا - ولكن هناك فرق رئيسي بين هاتين اللغتين الترميزيتين - تختلف استخداماتهما وأغراضهما:

  • HTML هي لغة ترميز تُستخدم لمساعدة المتصفحات في فهم كيفية عرض المحتوى على الشاشة
  • XML هي لغة ترميز تُستخدم لتخزين وعرض ونقل البيانات

إلى جانب ذلك، لديهم بعض الاختلافات الأخرى:

  1. لأن HTML مخصص لعرض محتوى الصفحة في المتصفحات، فإن أنواع علاماته محددة مسبقًا، بينما يمكن تخصيص علامات XML حسب الظروف الفعلية
  2. غالبًا ما تكون HTML ثابتة لأنها تُستخدم لعرض المحتوى؛ بينما XML ديناميكي لأنه يُستخدم لنقل البيانات
  3. لا تدعم HTML مساحات الأسماء، بينما يمكن أن يستخدم XML مساحات الأسماء لتمييز العلامات التي قد تحتوي على الاسم نفسه في سياقات مختلفة لتجنب الارتباك

في هذا المثال:

  • tech:title يستخدم <http://www.example.com/tech> كمساحة الاسم، مما يدل على أن هذا العنصر <title> ينتمي إلى مساحة الاسم tech
  • bio:author يستخدم <http://www.example.com/bio> كمساحة الاسم، مما يدل على أن هذا العنصر <author> ينتمي إلى مساحة الاسم bio

كيف يُستخدم XML في Logto؟

يدعم Logto بروتوكول SAML لـ SSO. عند إعداد SSO، يوفر موفر الهوية ملف تكوين بصيغة XML الذي يتضمن تكوينات هامة مثل الشهادات وعناوين URL لتسجيل الدخول الأحادي.

عند إعداد SAML SSO، يتيح Logto تحميل ملف التكوين بتنسيق XML الذي تم الحصول عليه من موفر الهوية مباشرةً، مما يلغي الحاجة لملء كل عنصر تكوين يدويًا.