لماذا هذا ليس XML DTD صالح؟ (كيان المعلمة و #pcdata)
-
25-09-2019 - |
سؤال
باستخدام مدقق 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 ، أي مطلوب العلامة النجمية.
لا تنتمي إلى StackOverflow