0

首先 - 创建xml文件contract01.xml并添加一些常用链接 - &buyer;.

与此目的是另一个文件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.

我不明白为什么会这样。
您是否知道如何以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教程吗?
4

1 回答 1

1

我认为 chrome 不会从您的本地系统加载 DTD。尝试在内部子集中包含实体声明:

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

也许您应该尝试使用实际的验证器而不是 Web 浏览器来验证您的 XML。(Xerces易于使用。)

于 2013-04-17T18:39:39.907 回答