我应该为xml文档编写一个DTD,但是有一个特定的部分将我抛出一个循环。在EnrolledIn元素中有字符数据,然后是课程元素。我试着用下面的DTD验证,但是我一直得到错误
“错误:元素EnrolledIn内容不遵循DTD,期望(CDATA,Course+),got (CDATA过程)
错误:元素EnrolledIn内容不遵循DTD,期望(CDATA,Course+),got (CDATA过程)“。
我试过在课程结束后使用*和+,但没有成功。我正在使用Notepad++ xml工具进行验证。
<!DOCTYPE Students [
<!ELEMENT Students (Student*)>
<!ELEMENT Student (LastName, MiddleInitial?, FirstName, EnrolledIn?)>
<!ELEMENT LastName (#PCDATA)>
<!ELEMENT FirstName (#PCDATA)>
<!ELEMENT MiddleInitial (#PCDATA)>
<!ELEMENT EnrolledIn (CDATA, Course+)>
<!ELEMENT Course (#PCDATA)>
]>
<Students>
<Student>
<LastName> Doe </LastName>
<MiddleInitial>K.</MiddleInitial>
<FirstName>John</FirstName>
<EnrolledIn>
Courses enrolled in:
<Course>
TCSS 445 – Database Systems Design
</Course>
<Course>
TCSS 422 – Operating Systems
</Course>
<Course>
TCSS 422 – Operating Systems
</Course>
<Course>
TBUS 301 Quantitative Analysis for Business
</Course>
</EnrolledIn>
</Student>
<Student>
<LastName> Smith </LastName>
<FirstName>Amy</FirstName>
<EnrolledIn>
Courses enrolled in:
<Course>
TBUS 100 Introduction to Business
</Course>
</EnrolledIn>
</Student>
<Student>
<LastName> Doe </LastName>
<MiddleInitial> L. </MiddleInitial>
<FirstName>Jane</FirstName>
</Student>
</Students>发布于 2014-10-07 21:48:34
这被称为混合内容模型,并且只有一种方式来编写它。(见此处:http://www.w3.org/TR/REC-xml/#sec-mixed-content)
<!ELEMENT EnrolledIn (#PCDATA|Course)*>您将无法限制文本(#PCDATA)和Course元素的顺序。在混合内容的情况下,模型中的所有内容总是为零或更多(按任何顺序)。
https://stackoverflow.com/questions/26244886
复制相似问题