1

こんにちは、私はまだXMlとDTDにかなり慣れていませんが、同時に楽しんでいます。「連絡先」という名前の簡単な割り当てがありますが、DTDを検証するのに苦労しています。もちろん、私はいくつかのものが欠けていて、いくつかのヒントや少しの助けを望んでいました。コードは以下にあり、エラーはコードの下にあります。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Contacts [
<!ELEMENT Contacts (XYZ, ABC, WIZ)>
<!ELEMENT XYZ (#PCDATA)>
<!ELEMENT ABC (#PCDATA)>
<!ELEMENT WIZ (#PCDATA)>
]>
<Contacts>
<XYZ>
"XYZ Inc.",
    "Jones","Barnaby"
    "bjones@xyz.com"
    "Owner-Operator"
    "402-410-2314"
    "8923 Holmes St"
    "Omaha","NE","68222","USA"
    "<div>Prospect</div>"
    "Business"
</XYZ>

<ABC>
"ABC International"
    "Magnum","Thomas"
    "tmagnum@abcint.biz"
    "Owner-Operator"
    "402-310-2222"
    "402-571-2893"
    "3204 Plains Ave"
    "Papillion","NE","68103","USA"
    "<div>Vendor</div>"
    "Business"
</ABC>

<Wiz>"Wiz Kids"
    "Plum","Steve"
    "steve@wizkids.com"
    "Sales Rep"
    "402-555-2325"
    "402-516-2038"
    "402-333-2428"
    "1234 Main St"
    "Belluvue","NE","68201","USA
    #http://wizkids.com#
    <div>Vendor</div>"
</Wiz>
</Contacts>

エラー:

  1. 要素タイプ「div」を宣言する必要があります
  2. 予期しない要素「div」。親要素タイプのコンテンツは一致する必要があります(#PCDATA)。
  3. 要素タイプ「div」を宣言する必要があります
  4. 予期しない要素「div」。親要素タイプのコンテンツは一致する必要があります(#PCDATA)。
  5. 要素タイプ「Wiz」を宣言する必要があります
  6. 要素タイプ「div」を宣言する必要があります
  7. 予期しない要素「Wiz」。親要素タイプのコンテンツは(XYZ、ABC、WIZ)と一致する必要があります。
4

1 に答える 1

0

次のように、XMLのコンテンツをCDATAでラップします。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Contacts [
<!ELEMENT Contacts (XYZ)>
<!ELEMENT XYZ (#PCDATA)>
]>
<Contacts>
<XYZ>
<![CDATA["XYZ Inc.",
    "Jones","Barnaby"
    "bjones@xyz.com"
    "Owner-Operator"
    "402-410-2314"
    "8923 Holmes St"
    "Omaha","NE","68222","USA"
    "<div>Prospect</div>"
    "Business"]]>
</XYZ>
</Contacts>

または、要素定義にdivを追加します。

<!ELEMENT XYZ (#PCDATA|div)>

または、DTDで「<」および「>」エンティティを定義し、コンテンツで実際の「<」および「>」の代わりにそれらを使用します。

<!ENTITY lt "<">
<!ENTITY gt ">">
<XYZ>
&lt;Prospect&gt;
</XYZ>

XMLタグでは大文字と小文字が区別されるため、要素Wizを定義するか、コンテンツでWIZと呼びます。

また、このチュートリアルをチェックしてください:http ://www.w3schools.com/dtd/default.asp

于 2012-10-03T23:11:34.257 に答える