الفصل 4 بناء جملة XML
الخطوط العريضة:
1. قواعد بناء جملة XML 2. بناء جملة العنصر 3. بناء جملة التعليق 4. بناء جملة CDATA 5. بناء جملة مساحات الأسماء 6. بناء جملة الكيان 7. بناء جملة DTD
من خلال دراسة الفصول الثلاثة السابقة، أصبح لدينا بالفعل فهم لماهية XML ومبادئ تنفيذها والمصطلحات ذات الصلة. بعد ذلك، سنبدأ في تعلم مواصفات بناء جملة XML وكتابة مستندات XML الخاصة بنا.
1. قواعد بناء جملة XML
تشبه مستندات XML أكواد HTML الأصلية، وتستخدم أيضًا العلامات لتحديد المحتوى. يجب اتباع القواعد المهمة التالية عند إنشاء مستندات XML:
القاعدة 1: يجب أن يكون هناك بيان إعلان XML وقد ذكرنا ذلك بالفعل في الفصل السابق. الإعلان هو الجملة الأولى من مستند XML ويكون تنسيقه كما يلي:
<?xml version="1.0" standalone="yes/no" encoding="UTF-8"?>
الغرض من الإعلان هو إخبار المتصفح أو أي برنامج معالجة آخر بأن هذا المستند هو مستند XML. يشير الإصدار الموجود في بيان الإعلان إلى إصدار مواصفات XML التي يتوافق معها المستند؛ ويشير المستقل إلى ما إذا كان المستند مزودًا بملف DTD، وإذا كان الأمر كذلك، فإن المعلمة لا تشير إلى ترميز اللغة المستخدم في المستند، و الافتراضي هو UTF-8.
القاعدة 2: ما إذا كان هناك ملف DTD أم لا. إذا كان المستند "مستند XML صالحًا" (راجع الفصل السابق)، فيجب أن يحتوي المستند على ملف DTD مطابق وأن يتوافق تمامًا مع المواصفات التي حددها ملف DTD. يتبع بيان الإعلان الخاص بملف DTD بيان إعلان XML بالتنسيق التالي:
<!DOCTYPE نوع المستند SYSTEM/PUBLIC "dtd-name">
في:
"!DOCTYPE" يعني أنك تريد تعريف DOCTYPE؛
"type-of-doc" هو اسم نوع المستند الذي حددته بنفسك، وعادةً ما يكون نفس اسم ملف DTD؛
استخدم فقط أحد المعلمتين "SYSTEM/PUBLIC". يشير SYSTEM إلى عنوان URL لملف DTD الخاص الذي يستخدمه المستند، بينما يشير PUBLIC إلى عنوان URL لملف DTD العام الذي يستخدمه المستند.
"dtd-name" هو عنوان URL واسم ملف DTD. كافة ملفات DTD لها اللاحقة ".dtd".
ما زلنا نستخدم المثال أعلاه، وينبغي كتابته على النحو التالي:
<?xml version="1.0" standalone="no" encode="UTF-8"?>
<!DOCTYPE filelist SYSTEM "filelist.dtd">
القاعدة 3: انتبه إلى الكتابة بالأحرف الكبيرة في مستندات XML، هناك فرق بين الأحرف الكبيرة والصغيرة. <P> و <p> معرفان مختلفان. لاحظ أنه عند كتابة العناصر، يجب أن تظل حالة المعرفات الأمامية والخلفية كما هي. على سبيل المثال: <Author>ajie</Author>، من الخطأ كتابة <Author>ajie</author>.
من الأفضل أن تعتاد على كتابة الأحرف الكبيرة، أو الأحرف الصغيرة، أو تكبير الحرف الأول. يؤدي هذا إلى تقليل أخطاء التوثيق الناتجة عن عدم تطابق الحالة.
القاعدة 4: إضافة علامات الاقتباس إلى قيم السمات في كود HTML، يمكن اقتباس قيم السمات أم لا. على سبيل المثال: يمكن للمتصفح تفسير <font color=red>word</font> و<font color="red">word</font> بشكل صحيح.
ومع ذلك، في XML، ينص على أن جميع قيم السمات يجب أن تكون مقتبسة (يمكن أن تكون علامات اقتباس مفردة أو علامات اقتباس مزدوجة)، وإلا فسيتم اعتبارها خطأ.
القاعدة 5: يجب أن تحتوي جميع العلامات على علامة إغلاق مقابلة في HTML، ولا يجوز أن تظهر العلامات في أزواج، مثل؟lt;br>. في XML، ينص على أن جميع العلامات يجب أن تظهر في أزواج. إذا كان هناك علامة بداية، يجب أن يكون هناك علامة نهاية. وإلا فإنه سيتم اعتباره خطأ.
القاعدة 6: يجب أيضًا إغلاق جميع العلامات الفارغة. العلامة الفارغة هي علامة لا تحتوي على محتوى بين أزواج العلامات. على سبيل المثال، <br>، <img> والعلامات الأخرى. في XML، ينص على أن جميع العلامات يجب أن تحتوي على علامة نهاية. بالنسبة لهذه العلامات الفارغة، فإن طريقة المعالجة في XML هي إضافة / في نهاية العلامة الأصلية، وهذا كل شيء. على سبيل المثال:
يجب كتابة <br> كـ <br />؛
يجب كتابة <META name = "keywords" content = "XML، SGML، HTML"> كـ <META name = "keywords" content = "XML، SGML، HTML" />؛
يجب كتابة <IMG src= "cool.gif"> بالشكل <IMG src= "cool.gif" />
الفصل 4 بناء جملة XML
2. بناء جملة العناصر
يتكون العنصر من زوج من المعرفات ومحتواها. مثل هذا: اجي. اسم العنصر واسم المعرف هما نفس الشيء. يمكن وصف الهويات بشكل أكبر باستخدام السمات.
في XML، لا توجد كلمات محجوزة، لذا يمكنك استخدام أي كلمة كاسم عنصر. ومع ذلك، يجب أيضًا مراعاة اللوائح التالية:
1. يمكن أن يحتوي الاسم على حروف وأرقام وأحرف أخرى؛
2. لا يمكن أن يبدأ الاسم برقم أو "_" (شرطة سفلية)؛
3. لا يمكن أن يبدأ الاسم بالحروف xml (أو XML أو Xml ..)
4. لا يمكن أن يحتوي الاسم على مسافات.
5. لا يمكن أن يحتوي الاسم على ): "(نقطتان)"
لتسهيل قراءة العناصر وفهمها ومعالجتها، لدينا بعض الاقتراحات الإضافية:
1. لا تستخدم "." في الاسم. لأنه في العديد من لغات البرمجة، يتم استخدام "." كخاصية للكائن، على سبيل المثال: Font.color. لنفس السبب، من الأفضل عدم استخدام "-" إذا كان لا بد من استخدامه، فاستبدله بـ "_"؛
2. اجعل الاسم قصيرًا قدر الإمكان.
3. حاول استخدام نفس المعيار للأحرف الكبيرة والأحرف الكبيرة للأسماء.
4. يمكن أن يستخدم الاسم أحرفًا غير إنجليزية، مثل الصينية. لكن بعض البرامج قد لا تدعمها. (يدعم IE5 حاليًا العناصر الصينية.)
بالإضافة إلى ذلك، أضف القليل من الشرح حول الخصائص. في HTML، يمكن استخدام السمات لتحديد تنسيق عرض العناصر. على سبيل المثال: <font color="red">word</font> سوف يعرض الكلمة باللون الأحمر. في XML، السمات هي مجرد أوصاف للمعرفات وليس لها علاقة بعرض محتوى العنصر. على سبيل المثال، نفس الجملة: <font color="red">word</font> لن تعرض الكلمة باللون الأحمر. (لذلك، سوف يتساءل بعض مستخدمي الإنترنت: كيف يتم عرض النص باللون الأحمر في XML؟ وهذا يتطلب استخدام CSS أو XSL، وهو ما سنشرحه بالتفصيل أدناه.)
3. بناء جملة التعليقات
تتم إضافة التعليقات إلى مستند XML لتسهيل القراءة والفهم، ولن يتم تفسيرها بواسطة البرنامج أو عرضها بواسطة المتصفح.
بناء الجملة للتعليقات هو كما يلي:
<!--هذه هي معلومات التعليق-->
كما ترون، فهو نفس بناء جملة التعليق في HTML، وهو أمر سهل للغاية. سيؤدي تطوير عادات التعليق الجيدة إلى تسهيل صيانة مستنداتك ومشاركتها وجعلها تبدو أكثر احترافية.
4. بناء جملة CDATA
الاسم الكامل لـ CDATA هو بيانات الأحرف، والتي تتم ترجمتها كبيانات أحرف. عندما نكتب مستندات XML، نحتاج أحيانًا إلى عرض الأحرف والأرقام والرموز الأخرى نفسها، مثل "<". في XML، هذه الأحرف لها بالفعل معاني خاصة. ماذا يجب أن نفعل؟ وهذا يتطلب استخدام بناء جملة CDATA. تنسيق بناء الجملة كما يلي:
<![CDATA[ضع الأحرف المراد عرضها هنا]]>
على سبيل المثال:
<![CDATA[<AUTHOR sex="female">أجي</AUTHOR>]]>
المحتوى المعروض على الصفحة سيكون "<AUTHOR sex="female">ajie</AUTHOR>"
الفصل 4 بناء جملة XML
5. بناء جملة مساحات الأسماء
مساحات الاسم تترجم إلى مساحة الاسم. ماذا تفعل مساحة الاسم؟ عندما نستخدم ملفات DTD خاصة بأشخاص آخرين أو ملفات DTD متعددة في مستند XML، سيكون هناك مثل هذا التناقض: نظرًا لأن المعرفات في XML يتم إنشاؤها بأنفسنا، في ملفات DTD مختلفة، قد تكون أسماء المعرفات هي نفسها ولكن لها معاني مختلفة تسبب ارتباكًا في البيانات.
على سبيل المثال، في مستند <table>طاولة خشبية</table>، يمثل <table> جدولًا.
في مستند آخر <table>namelist</table>، <table> يمثل جدولًا. إذا كنت بحاجة إلى العمل على كلا المستندين في نفس الوقت، فسيحدث تعارض في الأسماء.
لحل هذه المشكلة، قدمنا مفهوم مساحات الأسماء. تقوم مساحات الأسماء بتمييز هذه المعرفات بنفس الاسم عن طريق إضافة عنوان URL إلى اسم المعرف.
يجب أيضًا الإعلان عن مساحات الأسماء في بداية مستند XML. ويكون بناء جملة الإعلان كما يلي:
<document xmlns:yourname='URL'>
حيث yourname هو اسم مساحات الأسماء التي حددتها، وURL هو عنوان URL لمساحة الاسم.
بافتراض أن مستند "الجدول <table>" أعلاه يأتي من http://www.zhuozi.com، فيمكننا الإعلان عنه كـ
<document xmlns:zhuozi='http://www.zhuozi.com'>
ثم استخدم مساحة الاسم المحددة في العلامات اللاحقة:
<zhuozi:table>طاولة خشب</table>
وهذا ما يميز الجدولين <table>. ملاحظة: تعيين عنوان URL لا يعني أن هذا الشعار يحتاج حقًا إلى القراءة من عنوان URL هذا، بل هو مجرد علامة تمييز.
6. بناء جملة الكيان
تتم ترجمة الكيان على أنه "الكيان". وظيفتها تشبه "الماكرو" في Word، ويمكن أيضًا فهمها كقالب في DW. يمكنك تحديد كيان مسبقًا ثم استدعائه عدة مرات في مستند واحد، أو استدعاء نفس الكيان في مستندات متعددة.
يمكن أن يحتوي الكيان على أحرف ونصوص وما إلى ذلك. وتتمثل فوائد استخدام الكيان في ما يلي: 1. يمكن أن يقلل من الأخطاء التي تحتاج إلى إدخال أجزاء متطابقة متعددة في المستند مرة واحدة فقط. 2. يحسن كفاءة الصيانة. على سبيل المثال، إذا كان لديك 40 مستندًا تحتوي جميعها على كيانات حقوق الطبع والنشر، وإذا كنت بحاجة إلى تعديل حقوق النشر هذه، فلن تحتاج إلى تعديل جميع الملفات، بل تحتاج فقط إلى تغيير بيان الكيان المحدد في الأصل.
يحدد XML نوعين من الكيانات. أحدهما هو الكيان العادي الذي نتحدث عنه هنا، والمستخدم في مستندات XML؛ والآخر هو كيان المعلمة، المستخدم في ملفات DTD.
بناء جملة تعريف الكيان هو:
<!اسم ملف DOCTYPE [
<!ENTITY اسم الكيان "محتوى الكيان"
]
>
على سبيل المثال، أريد تحديد جزء من معلومات حقوق الطبع والنشر:
<!DOCTYPE حقوق الطبع والنشر [
<!ENTITY حقوق الطبع والنشر "حقوق النشر 2001، Ajie. جميع الحقوق محفوظة"
]
>
إذا تمت مشاركة محتوى معلومات حقوق الطبع والنشر الخاصة بي مع الآخرين في ملف XML، فيمكنني أيضًا استخدام طريقة الاتصال الخارجية، ويكون بناء الجملة كما يلي:
<!DOCTYPE حقوق الطبع والنشر [
<!نظام حقوق الطبع والنشر ENTITY "http://www.sample.com/copyright.xml">
]
>
بناء الجملة المرجعي للكيان المحدد في المستند هو: &entity-name;
على سبيل المثال، تتم كتابة معلومات حقوق الطبع والنشر المحددة أعلاه كـ "حقوق الطبع والنشر" عند استدعائها.
المثال الكامل هو كما يلي، يمكنك نسخه وحفظه كـ Copyright.xml لعرض المثال:
<?xml version="1.0" encoding="GB2312"?>
<!DOCTYPE حقوق الطبع والنشر [
<!ENTITY حقوق الطبع والنشر "حقوق النشر 2001، Ajie. جميع الحقوق محفوظة">
]>
<ملفي>
<title>XML</title>
<author>اجي</author>
<email>[email protected]</email>
<التاريخ>20010115</التاريخ>
© حق؛
</myfile>
الفصل 4 بناء جملة XML
7. بناء جملة DTD
DTD هو ملف ضروري لـ "مستند XML صالح". نستخدم ملفات DTD لتحديد القواعد والعلاقات المتبادلة بين العناصر والمعرفات في المستند. كيفية إنشاء ملف DTD؟ دعونا نتعلم معا:
1. تعيين العناصر
العناصر هي اللبنات الأساسية لمستندات XML. تحتاج إلى تحديد عنصر في DTD ثم استخدامه في مستند XML. بناء جملة تعريف العنصر هو: <!ELEMENT DESCRIPTION (#PCDATA, DEFINITION)*>
يوضح:
"<!ELEMENT" هو إعلان عن عنصر، يشير إلى أن ما تريد تعريفه هو عنصر؛
"الوصف" بعد العبارة هو اسم العنصر؛
"(#PCDATA, DEFINITION)*>" هي قاعدة استخدام هذا العنصر. تحدد القواعد العناصر التي يمكن أن تحتوي عليها وكيفية ارتباطها ببعضها البعض. ويوضح الجدول التالي قواعد العناصر:
2. جدول قواعد العناصر: