首页 > 解决方案 > 不断收到“没有元素声明”错误。这个 XML/DTD 有什么问题?

问题描述

我创建了一个简单的 XML 和一个 DTD,但由于某种原因,我尝试的每个验证器都在每一行上不断给我“没有元素声明”错误。我不太确定我做错了什么,因为我才刚刚开始研究 XML 和 DTD,并且希望得到一些见解,所以我知道我做错了什么并且可以改进。任何和所有的帮助将不胜感激,所以我知道将来该怎么做。

<?xml version="1.0" encoding="UTF-8"?>    

<!ELEMENT BILLER (RESTAURANTNAME,ADRESS,COMPANYPHONE,CVR)>

<!ELEMENT TIME (DATE,CLOCK)>
<!ELEMENT ORDER (MENUITEM+,CUSTOMER)>

<!ELEMENT RESTAURANTNAME (#PCDATA)>
<!ELEMENT ADRESS (#PCDATA)>
<!ELEMENT COMPANYPHONE (#PCDATA)>
<!ELEMENT CVR (#PCDATA)>
<!ELEMENT DATE (#PCDATA)>
<!ELEMENT CLOCK (#PCDATA)>

<!ELEMENT MENUITEM (FOOD,REQUEST,REQUESTPRICE?,QUANTITY,PRICETOTAL)>
<!ELEMENT CUSTOMER (TABLE,NAME,SPECIALTYPING,PAYMENTMETHOD)>

<!ELEMENT FOOD (#PCDATA)>
<!ELEMENT REQUEST (#PCDATA)>
<!ELEMENT REQUESTPRICE (#PCDATA)>
<!ELEMENT QUANTITY (#PCDATA)>
<!ELEMENT PRICETOTAL (#PCDATA)>

<!ELEMENT TABLE (#PCDATA)>
<!ELEMENT NAME (#PCDATA)>
<!ELEMENT SPECIALTYPING (#PCDATA)>
<!ELEMENT PAYMENTMETHOD (#PCDATA)>
]>
<regning id="122">    
<tidspunkt>
  <dato>03</dato>
  <måned>01</måned>
  <år>2020</år>
  <tid>13.40</tid>
</tidspunkt>

<restaurant>
<restaurantnavn>Restaurant Fixi</restaurantnavn>
<adresse>Havstreet 128, 478 Andeby</adresse>
<telefon>81 19 26 18</telefon>
<cvr>29 23 28 00</cvr>
</restaurant>

<kundeinfo>
<bord>3</bord>
<kunde-nr>122</kunde-nr>
<specielt>vegetar</specielt>
<betaling>KONTANT</betaling>
</kundeinfo>

<tjener>
        <fornavn>Lotti</fornavn>
        <efternavn>Andersen</efternavn>
</tjener>

<ordre>
  <menugenstand>
    <madtitel>Vegetar Lakseburger med fritter</madtitel>
    <ekstra>x</ekstra>
    <quantity>1</quantity>
    <pris valuta="DKK">80</pris>
  </menugenstand>

<menugenstand>
    <drikketitel>Økologisk hvedeøl</drikketitel>
    <ekstra>x</ekstra>
    <quantity>1</quantity>
    <pris valuta="DKK">45</pris>
  </menugenstand>

  <menugenstand>
    <madtitel>Båd Banannasplit</madtitel>
    <ekstra>Ekstra flødeskum</ekstra>
    <requestprice>10</requestprice>
    <quantity>1</quantity>
  <pris valuta="DKK">55</pris>
  </menugenstand>

</ordre>
</regning>

标签: xmldtd

解决方案


您没有定义一个 DOCTYPE 根元素开始。

我没有看到您的 DOCTYPE 定义和您的 XML 非常相似。解决这个问题的第一步是

<?xml version="1.0" encoding="UTF-8"?>    
<!DOCTYPE regning [
...

其余的不清楚。


推荐阅读