0

最初に -xmlファイルcontract01.xmlを作成し、いくつかの共通リンクを追加します - &buyer;.

この目的で別のファイルですcontr01.dtd。DTD Sheme に従って作成されます。

&buyer;リンクを からに変更する必要がありますVasul Vadultsyv

しかし、ブラウザでこの.xmlファイルを起動すると、次に表示されますChromeerrors:

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 に答える