2016-11-09 49 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