أين هو تعريف نوع مستند HTML5؟
سؤال
تحتوي معايير 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 مع واحد في نهاية المطاف.