【问题标题】:XML validation error: No document Element?XML 验证错误:没有文档元素?
【发布时间】:2013-01-28 04:01:51
【问题描述】:

我不明白为什么这个来自 XML 文档的 DTD 不会验证。它给我的错误是最后一行的“没有文档元素”。这很愚蠢,因为我可以删除除两行代码之外的所有代码,但它仍然给我错误。我是 XML 的初学者,所以也许有更多经验的人来看看我?

<?xml version = "1.0" encoding="utf-8" standalone="yes"?>
<!DOCTYPE events [
<!ELEMENT events (event)+>
<!ELEMENT event (itenerary, description, icon?, leader+, coordinator+, maxpart, registeredpart, carpool?, difficulty, cost?, destination)>
<!ELEMENT itenerary (startdate, enddate, departuretime, location)>
<!ELEMENT contact (name,phone+)>
<!ELEMENT name (firstname, lastname)>
<!ELEMENT startdate (year, month, day)>
<!ELEMENT enddate (year, month, day)>
<!ELEMENT year (#PCDATA)>
<!ELEMENT month (#PCDATA)>
<!ELEMENT day (#PCDATA)>
<!ELEMENT departuretime (hours,minutes)>
<!ELEMENT hours (#PCDATA)>
<!ELEMENT minutes (#PCDATA)>
<!ELEMENT location (street,city)>
<!ELEMENT street (#PCDATA)>
<!ELEMENT city (#PCDATA)>
<!ELEMENT description (#PCDATA)>
<!ELEMENT icon (#PCDATA)>
<!ELEMENT leader (contact+)>
<!ELEMENT firstname (#PCDATA)>
<!ELEMENT lastname (#PCDATA)>
<!ELEMENT phone (landline?, cell?)> 
<!ELEMENT coordinator (contact)>
<!ELEMENT landline (#PCDATA)>
<!ELEMENT cell (#PCDATA)>
<!ELEMENT maxpart (#PCDATA)>
<!ELEMENT registeredpart (#PCDATA)>
<!ELEMENT carpool (#PCDATA)>
<!ELEMENT difficulty (#PCDATA)>
<!ELEMENT cost (#PCDATA)>
<!ELEMENT destination (location)> 
]>

【问题讨论】:

  • 您能否发布准确的错误消息以及触发错误的short example document
  • ]&gt; 的最后一行发生错误,并且当前没有被任何文档使用。它目前只是一个 xml 格式的独立 dtd。
  • 好的,但是您使用什么工具来验证 DTD,您得到的精确输出是什么?
  • 我正在使用 WC3 验证服务。错误是数字 100:“第 5 行,第 3 列:没有文档元素]>”

标签: xml validation dtd


【解决方案1】:

W3C XML/HTML Markup Validation 服务只验证文档,而不是 DTD 本身。将有效文档附加到您的 DTD 以检查 DTD 和文档,like this

<?xml version = "1.0" encoding="utf-8" standalone="yes"?>
<!DOCTYPE events [
<!ELEMENT events (event)+>
<!ELEMENT event (itenerary, description, icon?, leader+, coordinator+, maxpart, registeredpart, carpool?, difficulty, cost?, destination)>
<!ELEMENT itenerary (startdate, enddate, departuretime, location)>
<!ELEMENT contact (name,phone+)>
<!ELEMENT name (firstname, lastname)>
<!ELEMENT startdate (year, month, day)>
<!ELEMENT enddate (year, month, day)>
<!ELEMENT year (#PCDATA)>
<!ELEMENT month (#PCDATA)>
<!ELEMENT day (#PCDATA)>
<!ELEMENT departuretime (hours,minutes)>
<!ELEMENT hours (#PCDATA)>
<!ELEMENT minutes (#PCDATA)>
<!ELEMENT location (street,city)>
<!ELEMENT street (#PCDATA)>
<!ELEMENT city (#PCDATA)>
<!ELEMENT description (#PCDATA)>
<!ELEMENT icon (#PCDATA)>
<!ELEMENT leader (contact+)>
<!ELEMENT firstname (#PCDATA)>
<!ELEMENT lastname (#PCDATA)>
<!ELEMENT phone (landline?, cell?)> 
<!ELEMENT coordinator (contact)>
<!ELEMENT landline (#PCDATA)>
<!ELEMENT cell (#PCDATA)>
<!ELEMENT maxpart (#PCDATA)>
<!ELEMENT registeredpart (#PCDATA)>
<!ELEMENT carpool (#PCDATA)>
<!ELEMENT difficulty (#PCDATA)>
<!ELEMENT cost (#PCDATA)>
<!ELEMENT destination (location)> 
]>
<events>
  <event>
    <itenerary><!-- Did you mean itinerary ? -->
      <startdate><year>2013</year><month>1</month><day>1</day></startdate>
      <enddate><year>2013</year><month>1</month><day>2</day></enddate>
      <departuretime><hours>12</hours><minutes>01</minutes></departuretime>
      <location>
        <street>Kölner Straße</street>
        <city>Düsseldorf</city>
      </location>
    </itenerary>
    <description>A short trip</description>
    <leader>
      <contact><name><firstname>John</firstname><lastname>Smith</lastname></name><phone/></contact>
    </leader>
    <coordinator>
      <contact><name><firstname>Jane</firstname><lastname>Smith</lastname></name><phone/></contact>
    </coordinator>
    <maxpart>??</maxpart>
    <registeredpart>???</registeredpart>
    <difficulty>easy</difficulty>
    <destination>
      <location>
        <street>Aachener Straße</street>
        <city>Düsseldorf</city>
      </location>
    </destination>
  </event>
</events>

【讨论】:

  • 啊,这是因为我需要一些内容来配合 dtd,而没有 Document 元素是因为我在 xml 中实际上没有文档。对吗?
  • @GivenPie 是的,没错。添加了一个验证示例(带链接)。
猜你喜欢
  • 1970-01-01
  • 2021-12-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多