2013-04-17 62 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/ –