سؤال

من الواضح أنني لا أستطيع تحديد ما إذا كان جزء من HTML صالحًا دون معرفة شكل بقية المستند (على الأقل ، سأحتاج إلى Doctype لمعرفة القواعد التي أؤكدها مقابلها). ولكن بالنظر إلى جزء HTML5 التالي:

<article><header></article>My header</header><p>My text</p></article>

يمكنني بالتأكيد تحديد ذلك غير صالحة دون رؤية بقية المستند. لذلك ، هل هناك شيء مثل "HTML" صالح مؤقتًا ، أو "صالحًا توفيره في مكان معين في وثيقة صالحة"؟

هل هناك ما هو أكثر من الرمز الكاذب التالي؟

def is_valid_fragment(fragment):
 tmp = "<!doctype html><html><head><title></title></head><body>" + fragment + "</body></html>"
 return my_HTML5_validator.is_valid_html5_document(tmp)
هل كانت مفيدة؟

المحلول

يمكنك بالتأكيد التحدث عن XML وثيقة weing جيد الشكل, ، ويمكنك إنشاء مستند من أي عنصر واحد وأطفاله. يمكنك بالتالي التحدث عن شظايا XHTML5 ذات الجذور المنفردة التي يتم تشكيلها جيدًا. يمكنك التعامل مع جزء مضاعف الجذور (مثل <img/><img/>) من خلال التعامل معها كتسلسل من المستندات ، أو لفها في بعض عناصر الحاوية الاصطناعية - لأننا نتحدث فقط عن التكوين الجيد ، سيكون ذلك على ما يرام.

ومع ذلك ، لا يزال HTML5 يسمح لعلامات SGML الذاتي ، مثل <hr> وهلم جرا ، لا يمكن تحديد الانسحاب الذاتي إلا من خلال الاستئناف إلى Doctype. على سبيل المثال، <div><hr></div> على ما يرام ، لكن <div><tr></div> ليس. إذا كنت تتعامل مع عقد DOM بدلاً من النص كإدخال ، فسيكون هذا أمرًا غير ضروري ، ولكن إذا كان لديك نص ، فستحتاج إلى محلل يعرف ما يكفي عن HTML لتكون قادرًا على التعامل مع هذه العناصر. علاوة على ذلك ، على الرغم من ذلك ، فإن بعض القواعد البسيطة للغاية ، التي يتم رفعها مباشرة من XML ، ستكون كافية للتعامل مع التكوين الجيد.

إذا كنت تريد أن تتجاوز التكوين الجيد والنظر في بعض جوانب صلاحية, ، أعتقد أنه لا يزال بإمكانك القيام بذلك على مستوى الشظية الجذور مع XML. كما تقول المواصفات:

يكون مستند XML صالحًا إذا كان لديه إعلان من نوع المستند المرتبط به وإذا كان المستند يتوافق مع القيود المعبر عنها.

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

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

نصائح أخرى

يمكنك التحقق مما إذا كانت متشددة بشكل جيد.

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