質問
を使用してい別.dtdとしてファイルにdoctypeのために私のカスタムxmlファイル:
names.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE name SYSTEM "names.dtd">
<names>
<name>
<text>Pepé</text>
<creator>&lost;</creator>
<history>&lost;</history>
</name>
<name>
<text>Charles</text>
<creator>James</creator>
<history>&lost;</history>
</name>
</names>
名です。dtd
<!ELEMENT name (text, creator+, history)>
<!ELEMENT text (#PCDATA)>
<!ELEMENT creator (#PCDATA)>
<!ELEMENT history (#PCDATA)>
<!-- Placeholder/unknown history or creator name -->
<!ENTITY lost "Lost in the depths of time.">
<!ENTITY eacute "é">
しかし時にアクセスしようとしているnames.xml を取得します以下のようなエラー:
XML構文解析エラー:未定義者 場所: http://localhost/.../names.xml ライン 5号欄18:
<text>Pepé</text>
---------^
で解明names.xml します。dtdと同じディレクトリを使用 http://localhost/.../names.dtd 動作しない。
これはそうに作業時の <!ENTITY
内 <!DOCTYPE
に names.xml
しています。誰でもできるのでアドバイス。
解決
いの文書Firefoxしてみる場合はdtdに正しく位置づけはどうなるんですか。Firefoxなのxml dtdを通じて適切なxmlパーサです。Open xml文書にIEの原因になりますのでお書きを通過するMSXMLパーサです。
開放時のxml文書でいうエラーにつDTDを使用はできません。を使用する必要があり、文字コードのeacuteではなく、文字そのものです。こちらのコードも作---
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE NAME SYSTEM "names.dtd">
<names>
<name>
<text>Pepé</text>
<creator>&lost;</creator>
<history>&lost;</history>
</name>
<name>
<text>Charles</text>
<creator>James</creator>
<history>&lost;</history>
</name>
</names>
や
<!ELEMENT name (text, creator+, history)>
<!ELEMENT text (#PCDATA)>
<!ELEMENT creator (#PCDATA)>
<!ELEMENT history (#PCDATA)>
<!ENTITY lost "Lost in the depths of time.">
<!ENTITY eacute "é">
他のヒント
Firefox な負荷外部Dtd (せSafari;で のように見え ないブラウザをしています。おDTD&XML作にxmllintまだロードされる外部Dtd:
$ xmllint --loaddtd names.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE names SYSTEM "names.dtd">
<names>
<name>
<text>Pepé</text>
<creator>&lost;</creator>
<history>&lost;</history>
</name>
<name>
<text>Charles</text>
<creator>James</creator>
<history>&lost;</history>
</name>
</names>
編集:としてhsivonenポイントにコメントは、Dtdを解決する外部団体である 悪いこと.るべき一般的には使用しないでDOCTYPEsはDtdにしましょう。したい場合に検証する書類を使用してみてください別のスキーマ(RELAX NG おすすめその目的なDTDに埋め込書そのものです。