سؤال

تحتوي معايير HTML/XHTML "القديمة" على DTD (تعريف نوع المستند) المحددة لهم:

HTML 4.01 http://www.w3.org/tr/html401/sgml/dtd.html
XHTML 1.0 http://www.w3.org/tr/xhtml1/dtds.html#a_dtd_xhtml-1

تحدد DTDs قواعد عناصر التعشيش - "ما هي أنواع العناصر التي قد تظهر في أي أنواع العناصر". لقد صنعت مخططًا لـ XHTML 1.0 هنا (آسف ، لم يعد لدي هذا المورد)

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

لذلك لا يوجد DTD ، صحيح؟

سؤال المتابعة: هل هناك سبب لعدم وجود DTD في HTML5؟ DTD هي طريقة لطيفة لتحديد قواعد التعشيش لجميع أنواع العناصر المختلفة. لماذا لا تشمل مثل هذا الشيء؟

تحديث: لقد وجدت هذا: http://www.w3.org/tr/html5/dom.html#kinds-of-content أعتقد ، هذا هو الأقرب إلى وجود DTD.

تحديث: صنع فريق Visual Studio مخطط XML لـ XHTML5. وانا اعتقد ان يجيب على سؤالي: http://blogs.msdn.com/b/webdevtools/archive/2009/11/18/18/html-5-intellisense-and-validation-schema-for-visal-studio-2008-and-visual-web-developer. ASPX

هل كانت مفيدة؟

المحلول

لا يوجد HTML5 DTD. HTML5 RC بشكل صريح يقول هذا عند مناقشة تسلسل XHTML ، وهذا ينطبق بوضوح على تسلسل HTML أيضًا.

تم اعتبار DTDs من قبل مصممي HTML5 على أنها محدودة للغاية في القوة التعبيرية ، ومقحة HTML5 (في الأساس وضع HTML5 من http://validator.nu ونسخها في http://validator.w3.org/nu/) استخدام المخططات والفحوصات المخصصة ، وليس التحقق من صحة DTD.

علاوة على ذلك ، تم تصميم HTML5 بحيث تكون كتابة DTD لأنها مستحيلة. على سبيل المثال ، لا توجد وسيلة SGML لالتقاط قاعدة HTML5 بأن أي اسم سمة يبدأ بـ "البيانات" ويتوافق مع بعض القواعد العامة صالحة. في SGML ، يجب إدراج السمات بشكل فردي ، لذلك يجب أن تكون DTD لا حصر لها.

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

نصائح أخرى

صحيح. لا يوجد DTD. ومع ذلك ، يجب أن تبدأ مستندات HTML5 <!DOCTYPE html> لذلك هناك doctype ، ولكن لا DTD.

نرى:

لقد أنشأت HTML5 DTD للاستخدام في مشاريع PHP XML الخاصة بي. إنه ليس جميلًا ، لكنه يعمل مع XHTML5 المكون جيدًا (أي HTML5 معبر عنه كـ XML).

يمكنك الاستيلاء عليها من حساب Bitbucket الخاص بي هنا:

https://bitbucket.org/kashbridge/dtd/overview

يتمتع!

تم إنشاء ماركوس من SGMLJS.NET و تحليل و SGML DTD لـ HTML 5.1 وبدأت الموضوع في قائمة المراسلات XML-DEV للمراجعة والمناقشة. تدور المناقشة حول تعريفات الكيان حتى الآن.

لقد أكملت للتو تحليلي لتوصية HTML 5.1 من W3C في http://sgmljs.net/docs/html5.html (من لغة الترميز بدلاً من تطوير الويب POV) ، وسأقوم بنشرها هنا للمراجعة في شكل SGML DTD الأولي لتحليل HTML 5.1 ، إلى جانب نص تحليل طويل.

[…]

أدرك أن Whatwg و W3C قد ابتعدوا منذ فترة طويلة عن SGML (و XML في معظم أعمال المواصفات المتعلقة بالويب) ، حيث تعاملت معها كأسلوب قديم ومع موقف مفترض إلى حد ما في نص المواصفات وفي أي مكان آخر. ولكن كما يظهر تحليل قواعد HTML5 ، فقد تخلى عن الاستخدام بشكل أساسي لأي طرق رسمية alltogether (ويظهر في ما لا يقل عن عيوب تمت مناقشتها في التحليل).

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

أعتقد أنهم تخلصوا من DTDs القديمة ، والآن نبدأ فقط صفحات HTML مع: <!DOCTYPE HTML>

ربما سيخرج W3C مع واحد في نهاية المطاف.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top