【问题标题】:External DTD markup declaration expected [duplicate]需要外部 DTD 标记声明 [重复]
【发布时间】:2020-12-01 08:19:18
【问题描述】:

我在添加外部 DTD 验证时遇到了 XML 验证问题。 这正常工作:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE booklist [
<!ELEMENT booklist (book)*>
<!ELEMENT book (author,title,published?)>
<!ELEMENT author (firstname,lastname)>
<!ELEMENT firstname (#PCDATA)>
<!ELEMENT lastname (#PCDATA)>
<!ELEMENT title (#PCDATA)>
<!ELEMENT published (#PCDATA)>
<!ATTLIST book genre (Science|Fiction) #REQUIRED>
<!ATTLIST book format (Paperback|Hardcover) "Paperback">
]>
<booklist>
  <book genre="Fiction" format="Paperback">
    <author>
      <firstname>Name</firstname>
      <lastname>Surname</lastname>
    </author>
    <title>Sample</title>
    <published>2020</published>
  </book>
</booklist>

当我尝试添加外部 dtd 声明时,XML 复制编辑器输出错误

第 1 行第 3 列的致命错误:需要标记声明

XML

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE booklist SYSTEM "booklist.dtd">
<booklist>
  <book genre="Fiction" format="Paperback">
    <author>
      <firstname>Name</firstname>
      <lastname>Surname</lastname>
    </author>
    <title>Sample</title>
    <published>2020</published>
  </book>
</booklist>

DTD

<!DOCTYPE booklist [
<!ELEMENT booklist (book)*>
<!ELEMENT book (author,title,published?)>
<!ELEMENT author (firstname,lastname)>
<!ELEMENT firstname (#PCDATA)>
<!ELEMENT lastname (#PCDATA)>
<!ELEMENT title (#PCDATA)>
<!ELEMENT published (#PCDATA)>
<!ATTLIST book genre (Science|Fiction) #REQUIRED>
<!ATTLIST book format (Paperback|Hardcover) "Paperback">
]>

我做错了什么?

【问题讨论】:

    标签: xml dtd xml-validation


    【解决方案1】:

    删除外部子集的 DOCTYPE 包装器:

    外部 DTD

    <!ELEMENT booklist (book)*>
    <!ELEMENT book (author,title,published?)>
    <!ELEMENT author (firstname,lastname)>
    <!ELEMENT firstname (#PCDATA)>
    <!ELEMENT lastname (#PCDATA)>
    <!ELEMENT title (#PCDATA)>
    <!ELEMENT published (#PCDATA)>
    <!ATTLIST book genre (Science|Fiction) #REQUIRED>
    <!ATTLIST book format (Paperback|Hardcover) "Paperback">
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-06
      • 2013-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多