الفرق بين HTML و XHTML. ما المقصود بامتداد ملف XHTML؟ لغة Xhtml

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

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

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

نظرًا لقدرة XHTML على تضمين مساحات أسماء XML الأخرى في المستند ، يمكن توسيعها بعدة طرق لتمثل أكثر من مجرد تنسيق الصفحة. على سبيل المثال ، يمكن تضمين Math Markup Language (MathML) في هذه المستندات لعرض الصيغ الرياضية والتدوين. يمكن أيضًا تضمين الصور باستخدام مساحة الاسم القابلة للتحجيم رسومات فيكتور(SVG) في مستند من هذا النوع. وبالتالي ، يمكن أيضًا تضمين XHTML في مستند XML آخر.

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

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

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

XHTML متوافق مع HTML ويخضع لقواعد معينة موصوفة في المعيار. هذا يعني أنه حتى أقدم المتصفحات التي تفهم HTML ستعمل مع XHTML أيضًا.

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

الاختلافات بين XHTML 1.0 و HTML.

هناك العديد المتطلباتالتي يلتزم المطور بتنفيذها:
  • في بداية المستند ، يجب الإشارة إلى أحد DTDs (تعريف نوع المستند):
  • في الجسم مستند XHTMLيجب أن تكون العلامات التالية موجودة: لغة البرمجة, رئيس, لقبو الجسم;
  • السمة مطلوبة xmlnsفي العنصر لغة البرمجة;
  • يجب كتابة أسماء العلامات والسمات بأحرف صغيرة ؛
  • يجب وضع جميع قيم السمات بين علامات اقتباس ؛
  • يجب إغلاق جميع العلامات ؛ إذا كان العنصر لا يحتوي على علامة إغلاق ، فيجب إضافة شرطة مائلة إلى نهايته (
    أو
    - مساحة للتوافق مع المتصفحات القديمة) ؛
  • من الضروري ملاحظة التداخل الصحيح للعلامات ( نص - غير صحيح؛ يجب أن تكتب نص );
  • يحظر استخدام السمات المصغرة ( نورابيجب استبداله بـ nowrap = "Nowrap") ؛ قائمة كاملة بهذه السمات: التحقق, المدمج, يعلن, تأجيل, معاق, ismap, noresize, لا ظل, نوراب, مضاعف, يقرأ فقط, المحدد.
  • العناصر التالية تخضع لقيود على إدراج عناصر أخرى:
    • أ أ;
    • شكللا يمكن أن تحتوي على عناصر أخرى شكل;
    • ضع الكلمة المناسبةلا يمكن أن تحتوي على عناصر أخرى ضع الكلمة المناسبة;
    • قبللا يمكن أن تحتوي IMG, مفعول, كبير, صغير, الفرعيةأو رشفة;
    • زرلا يمكن أن تحتوي على عناصر إدخال, تحديد, منطقة النص, ضع الكلمة المناسبة, زر, شكل, مجموعة الحقول, iframeأو isindex;
  • يجب استبدال الأحرف الخاصة بمعناها الحقيقي بما يكافئها:
    • & على ال & ;
    • < على ال < ;
    • > على ال > .

بالإضافة إلى ذلك ، هناك عدد من التوصيات الاختيارية التي لا يطلب من المطور اتباعها في الإصدار XHTML 1.0.0 تحديث، ولكن في الإصدارات اللاحقة من هذه اللغة ، من الممكن أن تتحول التوصيات إلى متطلبات:

  • إعلان وثيقة XML في بداية الكود قبل DTD ( );
  • يتبع العنصر لقبمباشرة بعد فتح البطاقة رئيس;
  • استخدام السمة بطاقة تعريفبدلا من اسم(يعتبر الاسم سمة مهملة) ؛
  • وجود سمة النوع في عناصر الملفات المضمنة (أوراق الأنماط والنصوص) ؛
  • رفض استخدام السمة استهداف.

هيا نعطي رمز الحد الأدنىصفحة XHTML الصحيحة:

عنوان محتوى الوثيقة

إذا لصقت هذا الرمز في ملف ، فاحفظه باسم " file.html"وفتح من خلال خادم الويب ، ثم يتلقى العميل جميع المعلومات كـ> text / html<. То есть, как и обычная HTML-страница. Фактически для браузера это будет не XHTML, а HTML-документ. У XHTML есть свой собственный MIME -тип: .

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

وبالتالي، بيانات XHTMLإعطائها للعميل بالشكل الصحيح ، نظرًا لأن جميع المزايا ، بالإضافة إلى التوافق عبر المستعرضات (زيادة سرعة تحليل التعليمات البرمجية بواسطة معالج XML ، والإبلاغ عن الأخطاء بواسطة المتصفح نفسه ، وما إلى ذلك) ، لا يمكن تحقيقها إلا إذا كان وكيل المستخدم يدعم XHTML وتم إبلاغه أن البيانات الواردة كود XHTML... الشيء الوحيد الذي يجب تذكره عند إرسال كود XHTML هو أنه إذا كان المتصفح يفهم XHTML ، فعندئذ فقط يمكن إرسال المعلومات كـ ؛ إذا لم يكن كذلك ، فكيف فقط ... قائمة بالعملاء الحديثين الذين يدعمون XHTML: MZ ، Opera ، Safari. IE ، للأسف ، لا أفهم حتى الآن ... يمكنك التحقق مما إذا كان وكيل المستخدم يدعم نوع MIME المطلوب من خلال النظر إلى الرأس القادم من المتصفح ، والذي يحتوي على جميع أنواع MIME المعروفة للعميل. فيما يلي مثال على كيفية القيام بذلك باستخدام برنامج نصي لـ Perl:

#! / usr / bin / perl -w # تحقق مما إذا كان المتصفح يدعم XHTML. my $ html = "text / html" ؛ my $ xhtml = "application / xhtml + xml"؛ نوع $ الخاص بي = $ ENV (HTTP_ACCEPT) = ~ m / \ Q $ xhtml \ E (؟! \ s *؛ \ s * q = 0) /؟ xhtml $: $ html؛ # اعرض العنوان المناسب. طباعة "نوع المحتوى: $ type \ n \ n"؛ # إخراج مستند HTML (X). مطبعة "..."؛

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

هذا النحو عالمي. سيعمل هذا الرمز بشكل صحيح مع وعلى .

سيكون الحل الجيد والأبسط هو تضمين ملفات الأنماط الخارجية وملفات البرامج النصية. في XHTML ، يتم ذلك بنفس طريقة HTML:

تستند هذه المقالة إلى مستند W3C الأصلي - XHTML ™ 1.1 - XHTML المستند إلى الوحدة النمطية - الإصدار الثاني: مسودة عمل W3C بتاريخ 16 فبراير 2007. وهي عرضة للتغيير ، ولكن من المحتمل أن تحل محل التوصية الحالية - XHTML ™ 1.1 - XHTML المستند إلى الوحدة النمطية.

الامتثال الصارم للوثائق

المستندات المتوافقة تمامًا مع XHTML 1.1 - يجب أن تستوفي المعايير التالية:

  1. يجب أن يكون العنصر الجذر للمستند هو العنصر .
  2. عنصر جذر المستند ( ) إلى مساحة اسم XHTML باستخدام السمة xmlns. مرجع مساحة الاسم لـ XHTML هو "http://www.w3.org/1999/xhtml" ، وهي الفتحة علامة htmlيجب أن يكون هناك بناء للنموذج: .
  3. يمكن أن يحتوي العنصر الجذر أيضًا على سمة schemaLocation. يتم تعريف سمة schemaLocation لـ XHTML على النحو التالي: "http://www.w3.org/MarkUp/SCHEMA/xhtml11.xsd".
  4. يجب أن يكون هناك تعريف نوع المستند DOCTYPE الذي يسبق عنصر الجذر. يجب أن يشير المعرف المضمن في إعلان DOCTYPE إلى DTD المقابل. قد يبدو هذا المعرف كما يلي:

فيما يلي مثال لمستند متوافق مع XHTML 1.1:

مكتبة افتراضية

انتقل إلى example.org.

لاحظ أنه في هذا المثال ، تم تضمين إعلان XML. إعلان XML مثل ما ورد أعلاه غير مطلوب إطلاقا مستندات XML... يوصى بشدة لمؤلفي مستندات XHTML باستخدام إعلان XML في جميع مستنداتهم. مثل هذا الإعلان مطلوب عندما يختلف ترميز مستند XML عن UTF-8 أو UTF-16.

يجب أن تحدد مستندات XHTML 1.1 نوع محتوى المستند إما text / html أو application / xhtml + xml.

بطبيعة الحال ، يجب أن يأخذ وكلاء المستخدم (على سبيل المثال ، المتصفحات) ، من جانبهم ، هذه التوصيات في الاعتبار.

XHTML 1.1 نوع المستند

XHTML 1.1 هو نوع مستند كامل الوظائف مع دلالات غنية. ومع ذلك ، فهي لا تعمل مثل أنواع XHTML 1.0 Transitional أو XHTML 1.0 Frameset. بدءًا من XHTML 1.1 ، لا يحتوي نوع المستند على العناصر القديمة الموجودة في أنواع XHTML 1.0 أو HTML 4. على الرغم من هذه الاستثناءات ، أو ربما بسببها ، يعد نوع XHTML 1.1 قاعدة صلبة لإنشاء أنواع مستندات جديدة في المستقبل بدعم كامل من قبل وكلاء مختلفين المستخدمين.

يتكون نوع XHTML 1.1 من وحدات XHTML النمطية التالية.

هيكل الوحدة النمطية الهيكلية ، الرأس ، html ، وحدة العنوان للعمل مع اختصار النص ، الاختصار ، العنوان ، blockquote ، br ، cite ، code ، dfn ، div ، em ، h1 ، h2 ، h3 ، h4 ، h5 ، h6 ، kbd ، p ، pre، q، samp، span، strong، var Hypertext module a List module dl، dt، dd، ol، ul، li Object module object، param Module طرق مختلفةالمشاهدات b ، big ، hr ، i ، small ، sub ، sup ، tt Editing module del ، ins Bidi support module bdo Forms زر module ، fieldset ، form ، input ، label ، legend ، select ، optgroup ، option ، textarea Tabular caption module ، col، colgroup، table، tbody، td، tfoot، th، thead، tr، image module img Client-side image map area module، map server-side image map ismap module المدرجة في img وحدة الأحداث الداخلية سمات الحدث Meta information module meta Scripting noscript الوحدة النمطية ، البرنامج النصي Style Sheets Module Style Style Attribute Module (Deprecated) Style Attribute Link Module Link Base Module

يستخدم XHTML أيضًا وحدة Ruby Annotation:

وحدة التعليقات التوضيحية Ruby، rbc، rtc، rb، rt، rp

يتم إعطاء أسماء الوحدات في القائمة وفقًا لتعريفاتها في الإصدار الحالي من "XHTML Modularization". لمزيد من المعلومات حول الوحدات النمطية ، راجع مستند XHTML Modularization.

الاختلافات عن XHTML 1.0 Strict

يختلف XHTML 1.1 عن تقنيات HTML 4 و XHTML 1.0. الأهم هو القضاء على العناصر المتقادمة. بشكل عام ، هناك استراتيجية لتحديد لغة الترميز من الجانب الهيكلي والوظيفي ، بغض النظر عن أوراق الأنماط المستخدمة لتصميم المستندات.

يمكن تلخيص الاختلافات على النحو التالي:

  1. تم استبدال السمة lang بالسمة xml: lang.
  2. في عنصري a و map ، تم استبدال سمة الاسم بسمة id.
  3. تم توسيع مجموعة عناصر "Ruby".

وبالتالي ، لا يختلف نوع XHTML 1.1 كثيرًا عن XHTML 1.0 Strict ، ومع ذلك ، فإن هذه الاختلافات كبيرة بما يكفي ويجب أخذها في الاعتبار.

عند الاختيار DOCTYPEمن الضروري تحديد أي من المعيارين يتم اختياره بوضوح: لغة البرمجةأو XHTML... ولتسهيل اختيارك ، قررت التفكيك الفرق بين HTML و XHTML.

الفرق الرئيسي بين HTML و XHTMLهل هذا XHTMLبناء على بناء الجملة XML... وبالتالي ، فهو أكثر صرامة ، وفيه تلك الحريات التي يمكن السماح بها لغة البرمجة.

والآن سنقوم بتحليل النقاط تفاصيل بناء جملة XHTML:

1. يجب إغلاق كل علامة

يجب إغلاق العلامات المزدوجة في لغة البرمجةأيضًا ، لكننا جميعًا نعرف ذلك في لغة البرمجةهناك العديد من العلامات الفردية (على سبيل المثال<IMG>) ، ويمكننا أن نكتب بأمان بهذه الطريقة:

ومع ذلك، في XHTMLيجب إغلاق جميع العلامات ، حتى ولو كانت مفردة ، ويتم إغلاقها على النحو التالي:

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

2. يجب استبدال جميع الأحرف الخاصة بالكيانات

هذا يعني أنه لا يمكنك كتابة مثل هذا: " & "، تحتاج إلى كتابة هذه الشخصية فقط ككيان ، أي" & ". في لغة البرمجةلا توجد مثل هذه القواعد.

3. يجب أن تكون جميع قيم السمات بين علامات اقتباس.

كلنا نعرف ذلك في لغة البرمجةيمكن كتابتها على هذا النحو:

وهذا يعني أن لدينا قيمة السمة " العرض"تم العثور عليه بدون اقتباسات. XHTMLهذا غير مقبول ، وهناك من الضروري أن تكتب مثل هذا:

4. يجب كتابة جميع العلامات والسمات بأحرف صغيرة.

لأكون صادقًا ، لم أفهم أبدًا سبب كتابة الأشخاص للعلامات بأحرف كبيرة. في رأيي هذا يشوه الكود ، وهناك شعور بأنه كتب بدون ضغط " CAPS LOCK". ولكن إذا كان في لغة البرمجةهي مسألة ذوق ، ثم في XHTML- هذه هي القاعدة: اكتب فقط بالأحرف الصغيرة.

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

اخترت لنفسي XHTML، لأنني أحب حقًا أن تكون الشفرة "نظيفة" وعندما يمكن تحليلها بسهولة في الأجزاء المكونة لها ( تفسير). نعم ، وعمومًا أنا معتاد على التركيب الصارم للغات الأخرى ، على سبيل المثال ، Java ، لذلك سأظل أكتب بشكل صحيح قدر الإمكان. وما تختاره متروك لك ، ولكن حول الاختلافات بين HTML و XHTMLانت تعرف بالفعل.