【问题标题】:Is there any reason why i get a DTD error every single time?为什么我每次都会收到 DTD 错误?
【发布时间】:2019-09-09 19:29:08
【问题描述】:

我在 XML 中做作业,刚开始使用 DTD,每次我尝试验证 dtd 文档时,我每次都会遇到相同的错误。 "

FATALERROR at line 1, column2: excpected comment or CDATA section”。

我真的不知道为什么。 xml 很好,经过验证且格式正确。

我尝试创建不同的 xml 和 dtd 文档,但无论我做什么或编写代码多么简单,我都会遇到相同的错误。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE root SYSTEM "mmm.dtd">
<root>
<name>name_nameson</name>
</root>


<!ELEMENT root (name)>
<!ELEMENT name (#PCDATA)>

【问题讨论】:

    标签: xml dtd


    【解决方案1】:

    只要您将 XML 和 DTD 放在同一个文件中,它就可以正常工作:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE root [
    <!ELEMENT root (name)>
    <!ELEMENT name (#PCDATA)>
    ]>
    
    <root>
    <name>name_nameson</name>
    </root>
    

    在单独的文件中,这应该是您的 DTD:

    <!ELEMENT root (name)>
    <!ELEMENT name (#PCDATA)>
    

    这是你的 XML:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE root SYSTEM "mmm.dtd">
    
    <root>
    <name>name_nameson</name>
    </root>
    

    【讨论】:

    • 所以如果我有一个外部 dtd 文件,它不会单独验证?
    • 外部 DTD 文件通过 XML 文件进行验证,所以不,DTD 不会单独验证(如果我正确理解了这个问题)。要触发 DTD 验证,您只需验证 XML,确保您编写了引用 DTD 文件的行,即&lt;!DOCTYPE root SYSTEM "mmm.dtd"&gt; :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-05
    • 1970-01-01
    • 2021-10-15
    • 2010-11-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多