سؤال

باستخدام مدقق DTD هنا, ، أبلغت أن DTD التالي غير صالح.

<!ENTITY % text "(#PCDATA|L)*">
<!ELEMENT H         (%text;)+>
<!ELEMENT L         (#PCDATA)>

رسالة الخطأ هي: "A" ("الحرف أو نوع العنصر مطلوب ضمن إعلان نوع العنصر" H "." في السطر 2 ، العمود 22.

هل يمكن لأي شخص الإشارة إلى سبب كونها غير صالحة؟ وكيف يمكنني جعلها صالحة؟ رسالة الخطأ ليست ودية للغاية بالنسبة لي. شكرًا.

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

المحلول

لا يمكنك فرض أن عنصرًا مع محتوى مختلط يجب أن يكون له عقدة طفل واحدة على الأقل. يصبح DTD الخاص بك

<!ELEMENT H         ((#PCDATA|L)*)+>

عندما يتم توسيع الكيان. الشكل الوحيد المسموح به للعناصر ذات المحتوى المختلط هو

(#PCDATA | A | B | C)*

حيث A و B و C هي عناصر الطفل المحتملة. #PCDATA يجب كن الخيار الأول ويجب السماح للمجموعة بتكرار أوقات 0-infinity ، أي مطلوب العلامة النجمية.

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