質問

を使用してい別.dtdとしてファイルにdoctypeのために私のカスタムxmlファイル:

names.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE name SYSTEM "names.dtd">
<names>
    <name>
        <text>Pep&eacute;</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&eacute;</text>
---------^

で解明names.xml します。dtdと同じディレクトリを使用 http://localhost/.../names.dtd 動作しない。

これはそうに作業時の <!ENTITY<!DOCTYPEnames.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&eacute;</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 "&#233;">

他のヒント

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&eacute;</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に埋め込書そのものです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top