في الوقت الحالي، دعونا نستخدم "المفكرة" لإنشاء ملف XML الخاص بنا. دعونا نلقي نظرة على ملف XML أولاً:
المثال 1
〈?xml version="1.0" encoding="gb2312" ?〉
<مراجع>
<الكتب>
〈الاسم〉مقدمة إلى XML 〈/الاسم〉
〈المؤلف〉تشانغ سان〈/المؤلف〉
〈وحدة عملة السعر = "رنمينبي"〉20.00〈/السعر〉
</الكتب>
<الكتب>
<الاسم>بناء جملة XML </الاسم>
〈!--سيتم نشر هذا الكتاب قريباً-〉
〈المؤلف〉لي سي〈/المؤلف〉
〈وحدة عملة السعر = "رنمينبي"〉18.00〈/السعر〉
</الكتب>
〈/المواد المرجعية〉
هذا ملف XML نموذجي، بعد التحرير، يتم حفظه كملف بلاحقة .xml. يمكننا تقسيم هذا الملف إلى قسمين رئيسيين: مقدمة الملف (Prolog) ونص الملف. السطر الأول في هذا الملف هو ديباجة الملف. هذا السطر هو شيء يجب أن يعلنه ملف XML، ويجب أن يكون موجودًا أيضًا في السطر الأول من ملف XML، وهو يخبر محلل XML بشكل أساسي بكيفية العمل. من بينها، الإصدار هو رقم الإصدار القياسي الذي يستخدمه ملف XML هذا، وهو مطلوب، ويحدد الترميز نوع الحرف المستخدم في ملف XML هذا، والذي يمكن حذفه عند حذف هذا البيان، يجب أن يكون رمز الحرف التالي هو رمز Unicode (يوصى بعدم حذفه). نظرًا لأننا نستخدم رمز الحرف GB2312 في هذا المثال، فلا يمكن حذف عبارة الترميز. كما أن هناك بعض بيانات الإقرار في مقدمة الملف، والتي سنعرضها لاحقاً.
ينتمي باقي الملف إلى نص الملف، حيث يتم تخزين معلومات محتوى ملف XML. يمكننا أن نرى أن النص الرئيسي للملف يتكون من علامات التحكم <reference> للبداية والنهاية </reference> وهذا ما يسمى "العنصر الجذري" لملف XML <book> وهو "العنصر الجذري". مباشرة تحت العنصر الجذر "العنصر الفرعي"؛ ضمن "الكتاب" توجد عناصر فرعية مثل "الاسم" و"المؤلف" و"السعر". وحدة العملة هي "سمة" في عنصر <price>، و"RMB" هي "قيمة السمة".
〈!--سيتم نشر هذا الكتاب قريبًا--〉 هو تعليق تمامًا مثل HTML. في ملف XML، يتم وضع جزء التعليق بين العلامتين "〈!--" و"--〉".
كما ترون، ملف XML بسيط للغاية. مثل HTML، تتكون ملفات XML أيضًا من سلسلة من العلامات، ومع ذلك، فإن العلامات الموجودة في ملفات XML هي علامات مخصصة خاصة بنا ولها معاني واضحة.
بعد الحصول على انطباع أولي عن ملفات XML، دعونا نتحدث عن بناء جملة ملفات XML بالتفصيل. قبل الحديث عن القواعد يجب أن نفهم مفهوم مهم وهو XML Parse.
1. محلل XML تتمثل
الوظيفة الرئيسية للمحلل اللغوي في التحقق مما إذا كانت هناك أخطاء هيكلية في ملف XML، وإزالة العلامات الموجودة في ملف XML، وقراءة المحتوى الصحيح للمعالجة بواسطة برنامج التطبيق التالي. XML هي لغة ترميزية تستخدم لتنظيم معلومات الملف. تحتوي مواصفات XML على قواعد مفصلة حول كيفية وضع علامة على بنية الملفات. المحلل اللغوي هو برنامج مكتوب وفقًا لهذه القواعد (مكتوب في الغالب بلغة Java). تمامًا مثل HTML، يجب أن يكون هناك محلل HTML في المتصفح حتى يتمكن المتصفح من "قراءة" صفحات الويب المختلفة المكونة من علامات HTML وعرضها أمامنا. إذا كانت هناك علامات لا يستطيع محلل HTML للمتصفح قراءتها، فسيتم إرجاع رسالة خطأ إلينا.
نظرًا لأن علامات HTML الحالية مربكة تمامًا وهناك الكثير من العلامات غير القياسية (يمكن عرض بعض صفحات الويب بشكل طبيعي باستخدام IE، ولكن ليس مع Netscape Navigator)، فقد نص مصممو XML بصرامة على بناء جملة XML من في البداية والبنية، يجب أن تتوافق ملفات XML التي نكتبها مع هذه اللوائح، وإلا فسيظهر لك محلل XML رسائل خطأ بلا رحمة.
هناك نوعان من ملفات XML، أحدهما هو ملف XML جيد التكوين والآخر هو ملف التحقق من صحة XML.
إذا كان ملف XML يفي ببعض القواعد ذات الصلة في مواصفات XML ولا يستخدم DTD (تعريف تنسيق المستند - التفاصيل لاحقًا)، فيمكن تسمية المستند بصيغة جيدة. وإذا كان ملف XML منسقًا بشكل جيد، وتم استخدام DTD بشكل صحيح، وكان بناء الجملة في DTD صحيحًا، فسيتم التحقق من صحة الملف. بالتوافق مع ملفي XML، يوجد محللان لـ XML، أحدهما هو المحلل اللغوي الجيد والآخر هو محلل التحقق من الصحة. يتضمن IE 5 محللًا للتحقق من الصحة، والذي يمكن استخدامه أيضًا لتحليل ملفات XML جيدة التشكيل.
تحقق مما إذا كانت تستوفي شروط التصميم الجيد. يمكننا فتح ملف XML الأول الذي قمنا بتحريره للتو باستخدام متصفح IE 5 أو أعلى.
قد تتساءل لماذا يكون العرض في المتصفح هو نفس الملف المصدر الخاص بي؟ هذا صحيح، لأنه بالنسبة لملفات XML، فإننا نعرف فقط المحتوى، ويتم إكمال نموذج العرض الخاص بها بواسطة CSS أو XSL. هنا، لم نحدد ملف CSS أو XSL الخاص به لملف XML هذا، لذلك يتم عرضه في شكله الأصلي. في الواقع، لتبادل البيانات الإلكترونية، هناك حاجة إلى ملف XML فقط. إذا أردنا عرضه في شكل ما، يجب علينا تحرير ملف CSS أو XSL (ستتم مناقشة هذه المشكلة لاحقًا).
2. ملف XML جيد التصميم
نحن نعلم أن XML يجب أن يكون جيد التشكيل حتى يتم تحليله بشكل صحيح بواسطة المحلل اللغوي وعرضه في المتصفح. إذًا ما هو ملف XML جيد التصميم؟ توجد بشكل أساسي الإرشادات التالية، والتي يجب الوفاء بها عندما نقوم بإنشاء ملفات XML.
أولاً، يجب أن يعلن السطر الأول من ملف XML أن الملف هو ملف XML وإصدار مواصفات XML الذي يستخدمه. لا يمكن أن تكون هناك عناصر أو تعليقات أخرى أمام الملف.
ثانيًا، يمكن أن يكون هناك عنصر جذر واحد فقط في ملف XML. في المثال الأول، 〈References〉... 〈/References〉 هو العنصر الجذر لملف XML هذا.
ثالثًا، يجب إغلاق العلامات الموجودة في ملف XML بشكل صحيح، أي أن علامات التحكم في ملف XML يجب أن تحتوي على علامة إغلاق مقابلة. على سبيل المثال: يجب أن تحتوي العلامة <name> على علامة إغلاق </name> مقابلة، وعلى عكس HTML، تكون علامة الإغلاق لبعض العلامات اختيارية. إذا واجهت علامة وحدة قائمة بذاتها في ملف XML، والتي تشبه <img src=.....> في HTML بدون علامة نهاية، فإن XML يطلق عليها "عنصر فارغ" ويجب عليك استخدام طريقة الكتابة هو: 〈اسم العنصر الفارغ/〉. إذا كان العنصر يحتوي على سمات، فإن طريقة الكتابة هي: 〈اسم العنصر الفارغ اسم السمة = "قيمة السمة"/〉.
رابعا: يجب ألا تتقاطع العلامات مع بعضها البعض. في ملفات HTML السابقة، كان بإمكانك الكتابة على النحو التالي:
〈B〉〈H〉XXXXXXX〈/B〉〈/H〉،
هناك مناطق متداخلة بين علامتي 〈B〉 و〈H〉، ولكن في XML، تكون متداخلة تمامًا ويحظر كتابة مثل هذه العلامات ويجب أن تظهر بترتيب منتظم.
خامسًا، يجب وضع قيم السمات ضمن علامات "". مثل "1.0"، "gb2312"، "RMB" في المثال الأول. جميعها محاطة بـ " " ولا يمكن تفويتها.
سادسا، يجب أن تكون علامات التحكم والتعليمات وأسماء السمات باللغة الإنجليزية حساسة لحالة الأحرف. على عكس HTML، في HTML، العلامات مثل <B> و<b> لها نفس المعنى، بينما في XML، العلامات مثل <name>، <NAME> أو <Name> مختلفة.
سابعا، نحن نعلم أنه في ملفات HTML، إذا أردنا أن يعرض المتصفح الأشياء التي ندخلها سليمة، فيمكننا وضع هذه الأشياء في 〈pre〉〈/pre〉 أو 〈xmp〉〈/xmp〉 ضع علامة في المنتصف. يعد هذا أمرًا ضروريًا بالنسبة لنا لإنشاء صفحات ويب لتعليم HTML، لأنه يجب عرض كود مصدر HTML في صفحة الويب. في XML، لتحقيق مثل هذه الوظيفة، يجب استخدام علامات CDATA. يتم تمرير المعلومات الموجودة في علامة CDATA سليمة إلى التطبيق بواسطة المحلل اللغوي، ولا يتم تحليل أي علامات تحكم في مقطع المعلومات. يتم وضع علامة على منطقة CDATA بواسطة: "<![CDATA[" كعلامة البداية و">>" كعلامة النهاية. على سبيل المثال: في التعليمات البرمجية المصدر في المثال 2، باستثناء الرمزين "<![CDATA[" و">>"، سيتم تسليم بقية محلل المحتوى إلى التطبيق المتلقي للمعلومات دون تغيير، حتى لو كانت هناك فراغات في سيتم أيضًا نقل بداية ونهاية منطقة CDATA وأحرف السطر الجديد وما إلى ذلك (لاحظ أن CDATA حرف كبير).
مثال 2
〈![CDATA[flying xml〉〉〉〉〉,:-)
أوه〈〈〈〈〈〈
>〉
ثامنا، يتعامل XML مع أحرف المسافات البيضاء بشكل مختلف عن HTML. ينص معيار HTML على أنه بغض النظر عن عدد الفراغات الموجودة، سيتم التعامل معها على أنها فارغة واحدة؛ بينما في XML، يُشترط أن يقوم المحلل بتسليم جميع الفراغات بخلاف العلامات إلى التطبيقات النهائية للمعالجة. بهذه الطريقة، يتعين علينا أحيانًا التخلي عن عادة المسافة البادئة عند كتابة ملفات HTML، لأنه يتعين على المحلل اللغوي أيضًا معالجة المسافات البادئة. مثل:
〈المؤلف〉تشانغ سان〈/المؤلف〉
و "المؤلف"
Zhang San 〈/Author〉
بالنسبة للمحلل (يتضمن الأخير بالإضافة إلى شخصية Zhang San داخل علامة 〈Author〉〈/Author〉، كما يتضمن أيضًا علامتي سطر جديد والشخصيات قبل "Zhang San" "رموز المسافة البادئة للنص). لذلك، سيكون للمحلل نتائج معالجة مختلفة بعد إزالة العلامة وتمرير المعلومات إلى التطبيق.
إذا أردنا أن نخبر برنامج XML بوضوح أن المسافات في العلامات لها معنى واضح ولا ينبغي إزالتها بشكل عرضي (على سبيل المثال، في بعض القصائد، المسافات لها معاني محددة)، فيمكننا إضافة سمة XML مدمجة - xml - إلى العلامات :الفضاء . على سبيل المثال (لاحظ حالة أسماء السمات وقيمها):
〈poetry xml:space="preserver"〉
الوطن الام! الوطن الام!
وطني الأم!
〈/Poetry〉
بالإضافة إلى ذلك، في ملف XML، إذا كان سيتم استخدام الأحرف الخاصة في الجدول 1، فيجب استبدالها بالرموز المقابلة.
جدول 1
رموز استبدال الأحرف الخاصة && &
<⁢
>>
" "
'
لتقديم ملخص هنا: ملف XML الذي يلبي المتطلبات المذكورة أعلاه هو ملف XML جيد التشكيل. هذا هو المطلب الأساسي لكتابة ملفات XML. يمكنك أن ترى أن بناء جملة ملفات XML أكثر صرامة من بناء جملة HTML. نظرًا لهذه اللوائح الصارمة، أصبح من الأسهل على مهندسي البرمجيات كتابة موزعي XML، وعلى عكس محللي الكتابة للغة HTML، يجب عليهم العمل بجد للتكيف مع أساليب كتابة صفحات الويب المختلفة وتحسين قدرة المتصفحات الخاصة بهم على التكيف. في الواقع، هذا أيضًا أمر جيد بالنسبة لنا كمبتدئين. فقط افعل ما تريد، ولا داعي للقلق بشأن كيفية كتابة نصوص HTML المختلفة كما كان من قبل.
نرى أنه في ملفات XML، يتم استخدام معظم العلامات المخصصة. لكن فكر في الأمر، إذا أرادت شركتان (أ) و(ب) في نفس الصناعة تبادل البيانات مع بعضهما البعض باستخدام ملفات XML، فإن الشركة (أ) تستخدم علامة <السعر> لتمثيل معلومات أسعار منتجاتها، بينما قد تستخدم الشركة (ب) علامة <بيع> السعر> لتمثيل معلومات السعر. إذا قرأ تطبيق XML المعلومات الموجودة في ملفات XML الخاصة به، وإذا كان يعرف فقط أن علامة <price> تمثل معلومات السعر، فلا يمكن قراءة معلومات الأسعار الخاصة بالشركة ب، وسيحدث خطأ. من الواضح، بالنسبة للكيانات التي ترغب في استخدام ملفات XML لتبادل المعلومات، يجب أن يكون هناك اتفاق بينها - أي العلامات التي يمكن استخدامها لكتابة ملفات XML، والعناصر الفرعية التي يمكن تضمينها في العنصر الأصلي، والترتيب في الذي يظهر فيه كل عنصر، وكيفية تحديد خصائصه، وما إلى ذلك. وبهذه الطريقة يمكنهم الحصول على اتصال سلس عند تبادل البيانات مع XML. تسمى هذه الاتفاقية DTD (تعريف نوع المستند، تعريف تنسيق المستند). يمكنك التفكير في DTD كقالب لكتابة ملفات XML. بالنسبة لتبادل بيانات XML بين نفس الصناعة، سيكون أكثر ملاءمة أن يكون لديك DTD ثابت. على سبيل المثال، إذا كانت صفحات ويب XML لمراكز التسوق الإلكترونية الكبرى على الإنترنت تتبع نفس DTD، فيمكننا بسهولة كتابة تطبيق يعتمد على DTD لالتقاط الأشياء التي نهتم بها عبر الإنترنت تلقائيًا. في الواقع، هناك بالفعل العديد من DTDs المحددة جيدًا، مثل MathML وSMIL وما إلى ذلك المذكورة سابقًا.
إذا كان ملف XML جيد التشكيل وتم إنشاؤه بشكل صحيح بناءً على DTD، فسيتم استدعاء ملف XML: Validating XML file. يسمى المحلل اللغوي المقابل: التحقق من المحلل اللغوي.