إعلان نوع المستند
تعريف نوع المستند ( DOCTYPE ) هو تعليمات تربط مستند XML أو SGML معين (مثل صفحة ويب ) بتعريف نوع المستند (DTD) (مثل التعريف الرسمي لإصدار معين من HTML 2.0 - 4.0 ). [ 1 ] في الشكل المُسلسل للمستند، يظهر كسلسلة قصيرة من علامات التنسيق التي تتوافق مع بنية معينة.
تُجري محركات تخطيط HTML في متصفحات الويب الحديثة عملية "استشعار" أو "تبديل" نوع المستند (DOCTYPE)، حيث يُحدد نوع المستند في المستند المُقدّم نمط التخطيط، مثل " نمط التوافق " أو "نمط المعايير". يستخدم تسلسل HTML5 ، غير القائم على SGML، نوع المستند فقط لاختيار النمط. ولأن متصفحات الويب مُصممة باستخدام مُحللات HTML مُخصصة، وليست مُحللات عامة قائمة على DTD، فإنها لا تستخدم DTD ولا تصل إليها أبدًا حتى في حال توفير عنوان URL. يُحتفظ بنوع المستند في HTML5 كعنوان "غير مُفيد في الغالب، ولكنه مطلوب" فقط لتفعيل "نمط المعايير" في المتصفحات الشائعة. [ 2 ]text/htmltext/html
بناء الجملة
الصيغة العامة لإعلان نوع المستند هي:
<!DOCTYPE root-element PUBLIC "/quotedFPI/" "/quotedURI/" [ <!-- تعريفات المجموعات الفرعية الداخلية --> ]>أو
<!DOCTYPE root-element SYSTEM "/quotedURI/" [ <!-- internal subset declarations --> ]>اسم نوع المستند
<!DOCTYPEيتبع بناء الجملة الافتتاحي بناء جملة فاصلة [ 3 ] : 403-404 (مثل المسافات، [ 3 ] : 297-298، 372 أو (باستثناء XML) التعليقات التي تُفتح وتُغلق بشرطة ASCII مزدوجة )، [ 3 ] : 372، 391 متبوعًا باسم نوع المستند [ 3 ] : 403-404 (أي اسم العنصر الجذر الذي يُطبق عليه تعريف نوع المستند (DTD) على الأشجار المنحدرة منه). في XML، العنصر الجذر الذي يُمثل المستند هو أول عنصر فيه. على سبيل المثال، في XHTML، العنصر الجذر هو <html> ، وهو أول عنصر يُفتح (بعد تعريف نوع المستند) وآخر عنصر يُغلق.
بما أن بناء الجملة للمعرف الخارجي والمجموعة الفرعية الداخلية كلاهما اختياري، [ 3 ] : 403-404 اسم نوع المستند هو المعلومات الوحيدة التي يجب تقديمها في إعلان DOCTYPE.
المعرف الخارجي
يمكن أن يحتوي تعريف نوع المستند (DOCTYPE) اختياريًا على مُعرِّف خارجي ، يلي اسم العنصر الجذر (مع فصل العناصر النحوية مثل المسافات)، ولكن قبل أي مجموعة فرعية داخلية. [ 3 ] : 403-404 يبدأ هذا التعريف إما بالكلمة المفتاحية PUBLIC SYSTEMأو الكلمة المفتاحية PUBLIC PUBLIC، [ 3 ] : 379 لتحديد ما إذا كان تعريف نوع المستند (DTD) مُحددًا باستخدام مُعرِّف عام يُعرّفه كنص عام ، أي نص مُشترك بين أنظمة حاسوب متعددة (بغض النظر عما إذا كان نصًا عامًا مُتاحًا للجمهور، أو نصًا عامًا غير مُتاح مُشتركًا داخل مؤسسة فقط). [ 3 ] : 180-182 إذا تم استخدام الكلمة المفتاحية PUBLIC، فإنها تتبعها المُعرِّف العام مُحاطًا بعلامات اقتباس ASCII مزدوجة أو مفردة . لا يُشير المُعرِّف العام إلى موقع تخزين، بل هو سلسلة ثابتة فريدة مُخصصة للبحث عنها في جدول (مثل فهرس SGML ). [ 3 ] : 180 مع ذلك، في بعض (وليس كل) ملفات تعريف SGML، يجب إنشاء المعرّف العام باستخدام صيغة معينة تسمى المعرّف العام الرسمي (FPI)، والتي تحدد المالك وما إذا كان متاحًا للجمهور. [ 3 ] : 182-183
قد يتبع المعرّف العام (إن وُجد) أو SYSTEMالكلمة المفتاحية (وإلا) [ 4 ] "معرّف نظام" مُحاط بعلامات اقتباس. على الرغم من أن تفسير معرّفات النظام في SGML يعتمد كليًا على النظام (وقد يكون اسم ملف، أو مفتاح قاعدة بيانات، أو إزاحة، أو غير ذلك) [ 3 ] ، فإن XML يشترط أن تكون هذه المعرّفات عناوين URI . [ 5 ] على سبيل المثال، معرّف FPI لـ XHTML 1.1 هو "-//W3C//DTD XHTML 1.1//EN"، وهناك 3 معرّفات نظام متاحة لـ XHTML 1.1 حسب الاحتياجات. أحدها هو مرجع URL"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" . هذا يعني أن محلل XML يجب أن يحدد موقع DTD بطريقة خاصة بالنظام، في هذه الحالة، عن طريق مرجع URL لـ DTD مُحاط بعلامات اقتباس مزدوجة.
في مستندات XHTML، يجب أن يُحدد تعريف نوع المستند (doctype) دائمًا مُعرّف النظام صراحةً. أما في المستندات المستندة إلى SGML، مثل HTML، فيمكن استنتاج مُعرّف النظام المناسب تلقائيًا من المُعرّف العام المُعطى. قد يتم هذا الربط، على سبيل المثال، عن طريق ملف فهرس يُحوّل مُعرّف واجهة المستخدم (FPI) إلى مُعرّف النظام. [ 6 ] يمكن أيضًا استخدام الكلمة SYSTEMالمفتاحية (باستثناء XML) بدون مُعرّف النظام، مما يُشير إلى وجود تعريف نوع المستند (DTD) ولكن يجب استنتاجه من اسم نوع المستند. [ 3 ] : 378
مجموعة فرعية داخلية
يُحاط الجزء الأخير، وهو اختياري، من تعريف نوع المستند (DOCTYPE) بأقواس مربعة حرفية ( [])، ويُسمى مجموعة فرعية داخلية . يُمكن استخدامه لإضافة/تعديل الكيانات أو إضافة/تعديل سلوكيات الكلمات المفتاحية العامة (PUBLIC). [ 7 ] من الممكن، وإن كان غير شائع، تضمين تعريف نوع المستند (DTD) بالكامل مباشرةً في المستند، ضمن المجموعة الفرعية الداخلية، بدلاً من الإشارة إليه من ملف خارجي. [ 3 ] : 402 في المقابل، تُحظر المجموعة الفرعية الداخلية أحيانًا ضمن ملفات تعريف SGML البسيطة، لا سيما تلك الخاصة بمحللات HTML الأساسية التي لا تُنفذ محلل SGML كاملاً.
إذا تضمن تعريف نوع المستند (DOCTYPE) كلاً من مجموعة فرعية داخلية من تعريف نوع المستند (DTD) ومعرّفًا خارجيًا، تُعالَج المجموعة الفرعية الداخلية أولًا، وتُعامَل المجموعة الفرعية الخارجية كما لو كانت مُضمَّنة في نهاية المجموعة الفرعية الداخلية. ولأن التعريفات السابقة لها الأولوية على التعريفات اللاحقة في تعريف نوع المستند، فإن هذا يسمح للمجموعة الفرعية الداخلية بتجاوز التعريفات في المجموعة الفرعية الخارجية. [ 3 ] : 402-403
مثال
قد يكون السطر الأول من صفحة الويب العالمية على النحو التالي:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> < html lang = "ar" dir = "ltr" xmlns = "http://www.w3.org/1999/xhtml" >يتضمن تعريف نوع المستند هذا لـ XHTML، بالإشارة، تعريف نوع المستند (DTD)، الذي مُعرّفه العام هو -//W3C//DTD XHTML 1.0 Transitional//ENومُعرّفه النظامي هو http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd. يمكن لمُحلِّل الكيانات استخدام أيٍّ من المُعرّفين لتحديد موقع الكيان الخارجي المُشار إليه. لم يتم تحديد أي مجموعة فرعية داخلية في هذا المثال أو الأمثلة اللاحقة. تم تعريف العنصر الجذر على أنه html، وبالتالي، فهو أول وسم يتم فتحه بعد نهاية تعريف نوع المستند في هذا المثال والأمثلة اللاحقة أيضًا. وسم HTML ليس جزءًا من تعريف نوع المستند، ولكنه أُدرج في الأمثلة لأغراض التوضيح.
تعريفات أنواع البيانات الشائعة
تم تجميع بعض تعريفات نوع المستند (DTD) الشائعة في قوائم. وقد أصدر اتحاد شبكة الويب العالمية (W3C) قائمة بتعريفات نوع المستند (DTD) الشائعة الاستخدام على الويب، والتي تتضمن تعريف نوع المستند (DTD) الأساسي لـ HTML5، وتعريفات نوع المستند (DTD) الأقدم لـ XHTML/HTML، وتعريفات نوع المستند (DTD) للتنسيقات الشائعة المضمنة القائمة على XML مثل MathML و SVG ، بالإضافة إلى المستندات "المركبة" التي تجمع بين هذه التنسيقات. [ 8 ] يوصي كل من معيار HTML5 الصادر عن اتحاد شبكة الويب العالمية (W3C) وإصداره المقابل الصادر عن مجموعة عمل WHATWG (WHATWG) المتصفحات بقبول تعريفات نوع المستند (DTD) لـ XHTML فقط، وتفضيل استخدام المنطق الداخلي بدلاً من جلب ملفات تعريف نوع المستند (DTD) الخارجية. كما يحدد معيار "تعريف نوع المستند (DTD) الداخلي" لـ XHTML، وهو عبارة عن قائمة بأسماء كيانات HTML. [ 9 ] : §13.2
تعريفات نوع المستند (DTD) لـ HTML 4.01
لا يسمح تعريف نوع المستند الصارم (Strict DTD) باستخدام ترميز العرض، بحجة أنه ينبغي استخدام أوراق الأنماط المتتالية (CSS) لهذا الغرض. هذا هو شكل تعريف نوع المستند الصارم (Strict DTD):
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> < html >يسمح تعريف نوع المستند الانتقالي ببعض السمات والخصائص العامة القديمة التي تم إهمالها:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> < html >في حال استخدام الإطارات ، يجب استخدام تعريف نوع البيانات (DTD) لمجموعة الإطارات بدلاً من ذلك، كما يلي:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd"> < html >تعريفات نوع المستند XHTML 1.0
تُعتبر تعريفات نوع المستند (DTD) الخاصة بـ XHTML أيضًا من النوع الصارم والانتقالي ومجموعة الإطارات.
XHTML Strict DTD. لا يتم دعم العلامات المهملة ويجب كتابة الكود بشكل صحيح وفقًا لمواصفات XML.
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> < html xmlns = "http://www.w3.org/1999/xhtml" xml:lang = "en" lang = "en" >يشبه XHTML Transitional DTD XHTML Strict DTD، ولكن يُسمح باستخدام العلامات المهملة.
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> < html xmlns = "http://www.w3.org/1999/xhtml" xml:lang = "en" lang = "en" >يُعدّ XHTML Frameset DTD هو XHTML DTD الوحيد الذي يدعم Frameset. يُمكنكم الاطلاع على DTD أدناه.
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"> < html xmlns = "http://www.w3.org/1999/xhtml" xml:lang = "en" لانج = "en" >XHTML 1.1 DTD
يُعدّ XHTML 1.1 أحدث إصدار نهائي من XHTML، وهو يدعم تجزئة XHTML إلى وحدات . ويتمتع XHTML 1.1 بنفس مستوى صرامة XHTML 1.0.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">تعريفات نوع المستند الأساسية لـ XHTML
XHTML Basic 1.0
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">XHTML Basic 1.1
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.1//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic11.dtd">HTML5 DTD-less DOCTYPE
يستخدم HTML5DOCTYPE تعريفًا قصيرًا جدًا، نظرًا لعدم احتوائه على أي إشارات إلى تعريف نوع المستند (DTD) على شكل عنوان URL أو FPI. كل ما يحتويه هو اسم الوسم للعنصر الجذر في المستند HTML. [ 10 ] وبحسب مسودة المواصفات نفسها:
<!DOCTYPE html>، بغض النظر عن حالة الأحرف.
باستثناء غياب مُعرّف الموارد الموحد (URI) أو سلسلة FPI (حيث تُعامل سلسلة FPI بحساسية لحالة الأحرف من قِبل أدوات التحقق)، فإن هذا التنسيق (مطابقة غير حساسة لحالة الأحرف للسلسلة !DOCTYPE HTML) هو نفسه الموجود في بنية HTML 4.01 المستندة إلى SGML DOCTYPE. في كلٍ من HTML4 وHTML5، تُعرَّف البنية الرسمية بأحرف كبيرة، حتى وإن كانت الأحرف الصغيرة ومزيج الأحرف الصغيرة والكبيرة تُعامل أيضًا على أنها صحيحة.
في لغة XHTML5، يجب DOCTYPEأن يكون التطابق حساسًا لحالة الأحرف مع السلسلة " <!DOCTYPE html>". وذلك لأن جميع أسماء عناصر HTML في صيغة XHTML يجب أن تكون بأحرف صغيرة، بما في ذلك العنصر الجذر المشار إليه داخل HTML5 DOCTYPE.
يُعدّ هذا DOCTYPEالخيار اختياريًا في XHTML5 ويمكن حذفه ببساطة. [ 11 ] ومع ذلك، إذا كان سيتم معالجة الترميز كـ XML وHTML معًا ، فيجب استخدام DOCTYPE. [ 12 ]
انظر أيضاً
مراجع
- ↑ HTML2 HTML3 HTML4
- ↑ "بنية لغة HTML - HTML5" . تم الاطلاع عليه بتاريخ 2011-06-05 .
- 1 2 3 4 5 6 7 8 9 10 11 12 13 14 غولدفراب، تشارلز ف. (1990). دليل SGML . أكسفورد : مطبعة كلارندون . ISBN 0-19-853737-9.
- ↑ والش، نورمان (2001-08-06). "كتالوجات XML" . منظمة تطوير معايير المعلومات المهيكلة (OASIS).
- ↑ كلارك، جيمس (15-12-1997). "مقارنة بين SGML وXML" . W3C . NOTE-sgml-xml-971215.
- ↑ "إعلان نوع المستند" . مؤرشف من الأصل بتاريخ 14 أغسطس 2011. تم الاطلاع عليه بتاريخ 9 سبتمبر 2011 .
- ↑ "إعلان نوع المستند" . msdn.microsoft.com .
- ↑ "W3C QA - قائمة موصى بها لتصريحات Doctype التي يمكنك استخدامها في مستند الويب الخاص بك" . www.w3.org . تم الاطلاع عليه بتاريخ 22 مارس 2019 .
- ↑ "معيار HTML" . html.spec.whatwg.org . تم الاطلاع عليه بتاريخ 22 مارس 2019 .
- ↑ "بنية HTML - HTML5" . مجموعة عمل تقنية تطبيقات النصوص التشعبية على الويب . تم الاطلاع عليه بتاريخ 5 يونيو 2011.
3. سلسلة نصية مطابقة للسلسلة "DOCTYPE" في نظام ASCII، بغض النظر عن حالة الأحرف. 5. سلسلة نصية مطابقة للسلسلة "HTML" في نظام ASCII، بغض النظر عن حالة الأحرف.
- ↑ "بنية XHTML - HTML5" . فريق عمل تقنية تطبيقات النصوص التشعبية على الويب . مؤرشف من الأصل بتاريخ 18 يونيو 2012. تم الاطلاع عليه بتاريخ 1 سبتمبر 2009 .
- ↑ "ترميز متعدد اللغات: مستندات XHTML متوافقة مع HTML" . اتحاد شبكة الويب العالمية . تم الاسترجاع في 17 يناير 2012 .
روابط خارجية
- نظرة عامة على نوع مستند HTML
- DTDs الموصى باستخدامها في مستند الويب الخاص بك - منشور إرشادي (وليس إلزاميًا) لضمان الجودة من W3C
- شبكة DOCTYPE - جدول نظرة عامة آخر [آخر تعديل 27 نوفمبر 2006]
- وضع الغرائب والوضع الانتقالي
- تعديل نموذج الصندوق
- المعايير القائمة على لغة XML
- SGML
