2016-11-09 88 views
0

我已经尝试了所有可以考虑后退和前进的事情,我已经计数并重复记录了我的lt和gt的一次又一次,但是这个外部dtd文件一直使消息失效:“ XML分析错误@line 30(最后一行包含“]>”):预计开始标记,'<'未找到。“谁能帮我吗?多谢!外部dtd验证错误:XML解析错误

<?xml version="1.0"?> 
<!DOCTYPE items 
[ 
<!ELEMENT items (item+)> 
<!ELEMENT item  (description, country, sellingPrice, cost, quantityOnHand, 
        backorderedAmount, dateLastReceived, quantitySoldYearToDate, 
        warehouseSection, warehouseShelve, remarks, supplier, supplier+)> 
<!ATTLIST item itemNumber ID #REQUIRED>  
<!ELEMENT description (#PCDATA)> 
<!ELEMENT country (#PCDATA)> 
<!ELEMENT sellingPrice  (#PCDATA)> 
<!ATTLIST sellingPrice saleItem (Y|N) #REQUIRED>  
<!ELEMENT cost (#PCDATA)> 
<!ELEMENT quantityOnHand (#PCDATA)> 
<!ELEMENT backorderedAmount (#PCDATA)> 
<!ATTLIST backorderedAmount dateOrdered NMTOKEN #IMPLIED> 
<!ELEMENT dateLastReceived (month, day, year)> 
<!ELEMENT month (#PCDATA)> 
<!ELEMENT day (#PCDATA)> 
<!ELEMENT year (#PCDATA)> 
<!ELEMENT quantitySoldYearToDate (#PCDATA)> 
<!ELEMENT warehouseSection (#PCDATA)> 
<!ELEMENT warehouseShelve  (#PCDATA)> 
<!ELEMENT remarks  (#PCDATA)> 
<!ELEMENT supplier  (number, shipmentLeadTime, supCost)> 
<!ELEMENT number (#PCDATA)> 
<!ELEMENT shipmentLeadTime (#PCDATA)> 
<!ATTLIST shipmentLeadTime unit (days|weeks) #REQUIRED> 
<!ELEMENT supCost (#PCDATA)> 
]> 

回答

0

既然这是一个外部DTD,那么您的XML文件中是否也有一个DOCTYPE声明引用了此DTD?如果是这样,您需要从DTD中删除文档类型。

下面就来尝试这样的例子有它注释掉:

<!--<!DOCTYPE items [--> 
<!ELEMENT items (item+)> 
<!ELEMENT item  (description, country, sellingPrice, cost, quantityOnHand, 
        backorderedAmount, dateLastReceived, quantitySoldYearToDate, 
        warehouseSection, warehouseShelve, remarks, supplier, supplier+)> 
<!ATTLIST item itemNumber ID #REQUIRED>  
<!ELEMENT description (#PCDATA)> 
<!ELEMENT country (#PCDATA)> 
<!ELEMENT sellingPrice  (#PCDATA)> 
<!ATTLIST sellingPrice saleItem (Y|N) #REQUIRED>  
<!ELEMENT cost (#PCDATA)> 
<!ELEMENT quantityOnHand (#PCDATA)> 
<!ELEMENT backorderedAmount (#PCDATA)> 
<!ATTLIST backorderedAmount dateOrdered NMTOKEN #IMPLIED> 
<!ELEMENT dateLastReceived (month, day, year)> 
<!ELEMENT month (#PCDATA)> 
<!ELEMENT day (#PCDATA)> 
<!ELEMENT year (#PCDATA)> 
<!ELEMENT quantitySoldYearToDate (#PCDATA)> 
<!ELEMENT warehouseSection (#PCDATA)> 
<!ELEMENT warehouseShelve  (#PCDATA)> 
<!ELEMENT remarks  (#PCDATA)> 
<!ELEMENT supplier  (number, shipmentLeadTime, supCost)> 
<!ELEMENT number (#PCDATA)> 
<!ELEMENT shipmentLeadTime (#PCDATA)> 
<!ATTLIST shipmentLeadTime unit (days|weeks) #REQUIRED> 
<!ELEMENT supCost (#PCDATA)> 
<!--]>--> 

也看到这个答案在这里:External referenced DTD in XML

如果这不回答你的问题,请与minimal, complete, and verifiable example更新。

+0

Thanx,丹尼尔和是的我有它在我的XML文件中引用。当我删除第一行和最后一行(您注释掉了)时,我收到了一条不同的错误消息“XML解析错误@line 1:文档末尾的额外内容”。我准备好了! Thanx的帮助! (很多!) – ecelizzy

+0

@ecelizzy - 你能用XML和更新的DTD更新你的问题吗? –

+0

原来问题出在验证器而不是程序上。 Thanx,再次! – ecelizzy