2013-04-17 136 views
0

首先 - 創建xml文件contract01.xml並添加一些常用鏈接 - &buyer;如何將外部鏈接添加到XML文檔(DTD shema)?

有了這個目標是另一個文件contr01.dtd。這是根據DTD Sheme創建的。

而且需要改變從&buyer;鏈接Vasul Vadultsyv

但是,當推出這款.xml文件在Chrome瀏覽器,它顯示未來errors:

This page contains the following errors: 

error on line 4 at column 17: Entity 'buyer' not defined 
error on line 6 at column 24: Entity 'buyer' not defined 
error on line 7 at column 35: Entity 'buyer' not defined 
Below is a rendering of the page up to the first error. 

我不能understant爲什麼出現這種情況。
你有一些想法如何解決這種情況與正確的方式鏈接到XML(DTD)
我試過Sams Teach Yourself XML in 21 Days (3rd Edition)這個例子。
也許這可能是一個有點舊信息。

碼(contract01.xml):

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE contract SYSTEM "contr01.dtd"> 
<contract> 
    <para1>&buyer; agrees to buy the property defined below on the terms 
      and conditions set forth in this contract.</para1> 
    <para2 section="1">&buyer; will take title of the real propirty described below, 
      for which consideration &buyer; agrees to pay... </para2> 
</contract> 

代碼(contr01.dtd)

<?xml version="1.0" encoding="UTF-8"?> 
<!ELEMENT contract (para1, para2)> 
<!ELEMENT para1 (#PCDATA)> 
<!ELEMENT para2 (#PCDATA)> 
<!ATTLIST para2 
    selection CDATA #REQUIRED> 
<!ENTITY buyer "Vasul Vadultsyv"> 

問:

  • 如何解決這個煩惱?
  • 你能推薦一些很好的XML教程嗎?

回答

1

我不認爲chrome會從你的本地系統加載DTD。嘗試包括內部子集實體聲明:

<!DOCTYPE contract SYSTEM "contr01.dtd" [ 
<!ENTITY buyer "Vasul Vadultsyv"> 
]> 

也許你應該嘗試用一個實際的驗證,而不是一個Web瀏覽器驗證XML。 (Xerces易於使用。)

+0

謝謝,這個增加是成功的。你知道一些很好的XML教程嗎? –

+0

@nazar_art - 我真的不知道任何好的教程。 Mulberry有很棒的快速參考文檔(http://www.mulberrytech.com/quickref/index.html)。除此之外,如果我有問題,規範就是我去的地方。 http://www.w3.org/TR/xml/和http://www.w3.org/TR/xml11/ –