【问题标题】:Trouble validating an xml document验证 xml 文档时遇到问题
【发布时间】:2014-10-07 20:39:48
【问题描述】:

我应该为一个 xml 文档编写一个 DTD,但是有一个特定的部分让我陷入了循环。在 EnrolledIn 元素中有字符数据,然后是课程元素。我尝试使用下面的 DTD 进行验证,但我不断收到错误

"ERROR: Element EnrolledIn 内容不遵循 DTD,期望 (CDATA , Course+),得到 (CDATA Course Course Course )

错误:EnrolledIn 元素内容不遵循 DTD,期望 (CDATA , Course+),得到 (CDATA Course )”。

课程结束后我尝试使用 * 和 + 但没有成功。我正在使用 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>

【问题讨论】:

    标签: xml dtd


    【解决方案1】:

    这称为混合内容模型,只有一种编写方式。 (见这里:http://www.w3.org/TR/REC-xml/#sec-mixed-content

    <!ELEMENT EnrolledIn (#PCDATA|Course)*>
    

    您将无法限制文本 (#PCDATA) 和 Course 元素的顺序。对于混合内容,模型中的所有内容总是零个或多个(以任何顺序)。

    【讨论】:

    • 这更有意义。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-31
    • 2015-12-26
    • 1970-01-01
    相关资源
    最近更新 更多