FirefoxでのXML外部実体参照とは?

このQ&Aのポイント
  • XML外部実体参照について分からない点があります。FirefoxとIEの違いや、<!ELEMENT>の書き方について教えてください。
  • XML外部実体参照についての知識が不足しており、FirefoxとIEの違いについて理解したいです。また、<!ELEMENT>の書き方にもついて詳しく教えてください。
  • XML外部実体参照についての疑問があります。Firefox3とIE8の違いや<!ELEMENT>の書き方について詳細を知りたいです。
回答を見る
  • ベストアンサー

FirefoxでのXML外部実体参照について。

FirefoxでのXML外部実体参照について。 XMLをイチから勉強しているのですが、外部実体参照のところで分からなくなってしまいました。 <!ENTITY [要素名] SYSTEM "[ファイルパス]"> で外部ファイルを読み込もうとしているのですが、これがIE8なら期待通りに(外部ファイルを読み込んで)動いてくれるのですが、Firefox3だと動いてくれません。 ソースは以下の通りです。 ----------------------------------------- [members.xml] <?xml version="1.0" encoding="Shift_JIS"?> <!DOCTYPE members SYSTEM "members.dtd" [ <!ENTITY member1 SYSTEM "member1.xml"> ]> <members> &member1; </members> ----------------------------------------- [members.dtd] <!ELEMENT members (member)*> <!ELEMENT member (name, sex)> <!ELEMENT name (#PCDATA)> <!ELEMENT sex (#PCDATA)> <!ATTLIST member id ID #REQUIRED> ----------------------------------------- [member1.xml] <?xml version="1.0" encoding="Shift_JIS"?> <member id="0001"> <name>Tarou.Nihon</name> <sex>Male</sex> </member> ----------------------------------------- FirefoxとIEの間に何か違いがあるのでしょうか。 あと、<!ELEMENT>ですが、 <!ELEMENT members (member)*> と書くのと、 <!ELEMENT members (member*)> と書くのでは何か違いがあるのでしょうか。 以上2点、詳しい方がいればお教え下さい。宜しくお願い致します。

  • XML
  • 回答数1
  • ありがとう数6

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

http://w4ard.eplusx.net/translation/W3C/REC-xml-20081126/#safe-behavior Firefoxは非検証XMLプロセッサとして、IEは検証XMLプロセッサとして動くのでしょう。 ><!ELEMENT members (member)*> >と書くのと、 ><!ELEMENT members (member*)> BNF的には違うものでしょうが、意味するところは同じだと思います。 http://w4ard.eplusx.net/translation/W3C/REC-xml-20081126/#elemdecls

関連するQ&A

  • 外部サブセットについて

    以下がxmlファイルです。 --------------------------------------------- <?xml version="1.0" encoding="Shift_JIS"?> <!DOCTYPE 製品一覧 SYSTEM "s1.dtd"> <製品一覧> <タイトル>製品リスト</タイトル> <製品> <名前>シューズ</名前> <単価>10000</単価> <カテゴリ>靴</カテゴリ> <カテゴリ>カジュアル</カテゴリ> <補足>注文は1 ダース単位</補足> </製品> <製品> <名前>サンダル</名前> <単価>5000</単価> <カテゴリ>靴</カテゴリ> </製品> </製品一覧> --------------------------------------------- 上記のxml文書に文書型宣言を記述して、作成したDTDを外部サブセットとして適用して下さい。とのことです。 私が書いた外部サブセット(s1.dtd) --------------------------------------------- <?xml version="1.0" encoding="Shift_JIS"?> <!ELEMENT 製品一覧 (製品*)> <!ELEMENT 製品 (タイトル,名前,単価,カテゴリ,補足)> <!ELEMENT タイトル (#PCDATA)> <!ELEMENT 名前 (#PCDATA)> <!ELEMENT 単価 (#PCDATA)> <!ELEMENT カテゴリ (#PCDATA)> <!ELEMENT 補足 (#PCDATA)> --------------------------------------------- この外部サブセットではダメでした。 勉強する気は、あるのですが、教科書見てもわからず、先生に聞いても理解出来ず、友達もさっぱりわかってないみたいで... ヒントでも何でもお待ちしております。m(._.)m

    • ベストアンサー
    • XML
  • XMLの属性について。

    XML,DTD,XSLの勉強をしています。 最終的に写真が表示され、その下に「PM 7:30」もしくは「19:30」と表示するようなページを作ろうと思っているのですが、属性の意味がよく理解できておらず下の3つのうちどれを採用したらいいか悩んでいます。どれが正解というか、どれを選ぶのがいい方法なんでしょうか? また、その理由(属性について)教えて頂けないでしょうか?具体的には次の2つが疑問点です。 1. 写真を表示するのに、写真のアドレスを属性にする理由はなんとなく分かるような気がするにですが、いまいちはっきりした理由が理解できていません。 DTDを<!ELEMENT アルバム (#PCDATA) >にして、XMLを<アルバム>0101.jpg</アルバム>でも写真の表示は可能なのでしょうか? 2. 一番の疑問点なのですが、時間を(#PCDATA)にするのか、EMPTYにして属性で CDATA にするべきなのかがよく分かりません。 (「分」も属性値にしてしまった方がいいのでしょうか?) (xslは、まだ作成していません。) よろしくお願い致します。 具体例↓ 3つ 「arubamu.dtd」 <?xml version="1.0" encoding="Shift_JIS"?> <!ELEMENT アルバム (時,分) > <!ATTLIST アルバム file CDATA #REQUIRED > <!ELEMENT 時 EMPTY > <!ATTLIST 時 ampm (am|pm) "am" > <!ATTLIST 時 time CDATA #REQUIRED > <!ELEMENT 分 (#PCDATA) > 「アルバム.xml」 <?xml version="1.0" encoding="Shift_JIS"?> <!DOCTYPE アルバム SYSTEM "arubamu.dtd"> <アルバム file = "0101.jpg" > <時 ampm = "pm" time = "7" /> <分>30</分> </アルバム> ------------------------------------------------------------------ 「arubamu2.dtd」 <?xml version="1.0" encoding="Shift_JIS"?> <!ELEMENT アルバム (時) > <!ATTLIST アルバム file CDATA #REQUIRED > <!ELEMENT 時 EMPTY > <!ATTLIST 時 ampm (am|pm) "am" > <!ATTLIST 時 time CDATA #REQUIRED > <!ATTLIST 時 minute CDATA #REQUIRED > 「アルバム2」 <?xml version="1.0" encoding="Shift_JIS"?> <!DOCTYPE アルバム SYSTEM "arubamu2.dtd"> <アルバム file = "¥0101.jpg" > <時 ampm = "pm" time = "7" minute = "30" /> </アルバム> ------------------------------------------------------------------- 「arubamu3.dtd」 <?xml version="1.0" encoding="Shift_JIS"?> <!ELEMENT アルバム (時,分) > <!ATTLIST アルバム file CDATA #REQUIRED > <!ELEMENT 時 (#PCDATA) > <!ATTLIST 時 ampm (am|pm) "am" > <!ELEMENT 分 (#PCDATA) > 「アルバム3.xml」 <?xml version="1.0" encoding="Shift_JIS"?> <!DOCTYPE アルバム SYSTEM "arubamu3.dtd"> <アルバム file = "0101.jpg" > <時 ampm = "pm">7</時> <分>30</分> </アルバム>

    • ベストアンサー
    • XML
  • XMLをDTDで検証しようとしたらエラー、何が悪いのかさっぱり(--#;)

    ◎Thread.xml <?xml version="1.0" encoding="Shift_JIS"?> <!DOCTYPE Thread SYSTEM "mybbs.dtd"> <Thread> <Response> <Name>暇人</Name> <Mail>暇人</Mail> <WebSite>http://www.yahoo.co.jp</WebSite> <Content> <h1>テスト</h1> <p>テスト</p> </Content> </Response> <Response> <Name>暇人2003</Name> <Mail>tomoyukibug@yahoo.co.jp</Mail> <WebSite>http://www.yahoo.co.jp</WebSite> <Content> <h1>テスト2</h1> <p>テスト2</p> </Content> </Response> </Thread> ◎mybbs.dtd <!ENTITY % xhtml-math-svg SYSTEM "xhtml-math-svg.dtd"> %xhtml-math-svg; <!ELEMENT Thread (Response)+> <!ELEMENT Content %body.content;> <!ELEMENT Email "( #PCDATA )" > <!ELEMENT WebSite "( #PCDATA )" > <!ELEMENT Name "( #PCDATA )" > <!ELEMENT Response (Name,Email,WebSite,Content)> 率直に聞きます。 自分のプログラム(文字数制限に付き、ソース公開不可、するなら補足で)がエラーが出るんですが、何が間違っているんでしょう? エラー内容:これは無効なコンテンツモデルです

  • XMLの実体参照とXSLT

    次のようなXMLファイルをXSLTで処理したいのですが、&baseの部分がうまく表示できません。 どのようにしたら表示できるでしょうか? ■a.xml <?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="a.xsl"?> <!DOCTYPE test [ <!ELEMENT name (#PCDATA)> <!ENTITY base SYSTEM "base.xml"> ]> <test> <name>abc</name> &base; </test> ■base.xml <?xml version="1.0" encoding="UTF-8"?> <base>base</base> ■a.xsl <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="xml" encoding="UTF-8" /> <xsl:template match="/"> <xsl:apply-templates select="test" /> <xsl:apply-templates select="base" /> </xsl:template> <xsl:template match="test"> name:<xsl:value-of select="name" /> </xsl:template> <xsl:template match="base"> base:<xsl:value-of select="base" /> </xsl:template> </xsl:stylesheet> □結果 name:abc ※base.xmlの内容を表示できない

    • ベストアンサー
    • XML
  • XMLファイルからXML Schemaを参照する方法?

    XMLファイルの設計をしています。 今まではDTDを使っていたのですが、 勉強するとXML SchemaのほうがXMLの規則にそっていたり、 データ型が多かったりして都合が良い面があると学びました。 そこでXML Schemaを使いたいと思うのですが、 XML SchemaとメインのXMLのファイルはどのように関係させたら良いのでしょうか? DTDのときは以下のように書いていたと思います。 <!DOCTYPE root SYSTEM "sample.dtd" > このような記述をXML Schemaのときには、どのように記載するのだろうと 疑問に思いました。 私なりに調べてみたのですが、 XML Schemaの記述方法は、大まかに理解したのですが、 関係方法をどうすれば良いかは、見つけられませんでした。 本を読んでも、書かれているように思えません。 以下の2つのファイルがあった場合、 【element1.xml】は妥当なXML文書だそうですが、 どのように関連付いているのでしょうか? 【element.xs】 <?xml version="1.0" encoding="Shift_JIS" ?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <!-- 要素宣言 --> <xs:element name="売上高" type="xs:integer" /> </xs:schema> 【element1.xml】 <?xml version="1.0" encoding="Shift_JIS" ?> <売上高>1000</売上高> もしよろしければ、教えて頂けませんか? ぜひご教示お願いいたします。

    • ベストアンサー
    • XML
  • 実体参照を@IDで取得できないでしょうか

    複数の実体を宣言して、 その実体の宣言を変数で行うことができないでしょうか。 honbun.xmlの中で  <TEST ID="A" />  <TEST ID="B" />  <TEST ID="C" /> yomikomi.xmlの中で  <!ENTITY contents SYSTEM "A.xml"> <!--  <!ENTITY contents SYSTEM "B.xml">  <!ENTITY contents SYSTEM "C.xml"> --> ※その都度読み込むファイル名を変える。 test.xsl 宣言↓ <!ENTITY A SYSTEM "A.html"> <!ENTITY B SYSTEM "B.html"> <!ENTITY C SYSTEM "C.html"> ・ (同様に100ファイルあります。) 該当箇所↓ <xsl:template match="TEST">  <xsl:choose>   <xsl:when test="@ID='A'">    &A;   </xsl:when>   <xsl:when test="@ID='B'">    &B;   </xsl:when>   <xsl:when test="@ID='C'">    &C;   </xsl:when>  </xsl:choose> </xsl:template> 上記のような実体参照となり、 これなら普通に動作するのですが、 全部で100ファイルほどhtmlがあるので、 それをhonbun.xml中のIDから判定して宣言する方法が無いでしょうか。 イメージ的には <xsl:template match="TEST"> &{@ID}; </xsl:template> のような感じで、 TESTタグの持っているID属性をそのまま実体名として参照したいのです。 よろしくお願いいたします。

    • ベストアンサー
    • XML
  • xmlについてです.

    外部参照をするように記述をしたのですが, 実行するとどのブラウザでも表示されません. 原因はなんでしょうか. お願いします. os: windows7 32bit sp ブラウザ:IE9,firer fox6.0,OPERA11.50, ______________________ <?xml version="1.0" encoding="Shift_JIS" ?> <!DOCTYPE ca [ <!ENTITY rb SYSTEM "rb.xml"> ]> <ca id="001"> <title>料理</title> <cn>メニュー</cn> <rb>&rb;</rb> </ca> ______________________ rb.xml <?xml version="1.0" encoding="Shift_JIS" ?> <rb> <main>コース料理</main> <stand> <id s="B"> ハンバーグ </id> <id s="M"> ステーキ </id> <id s="T"> オムライス </id> </stand> </rb> ______________________ 実行すると以下のような画面になります <ca id="001"> <title>料理</title> <cn>メニュー</cn> <rb/> </ca>

    • 締切済み
    • XML
  • 属性リスト宣言

    以下がxmlファイルです。 --------------------------------------------- <?xml version="1.0" encoding="Shift_JIS"?> <!DOCTYPE 製品管理 SYSTEM "s1.dtd"> <製品管理> <製品 製品番号="001"> <名前>シューズ</名前> <SKU 倉庫="ABC" 単価="10000" /> </製品> </製品管理> --------------------------------------------- <?xml version="1.0" encoding="Shift_JIS"?> <!ELEMENT 製品管理 (製品)*> <!ATTLIST 製品 製品番号 ID #REQUIRED> <!ELEMENT 製品 (名前|SKU)*> <!ELEMENT 名前 (#CDATA)*> <!ELEMENT SKU entity> <!ATTLIST SKU 倉庫 NMTOKENS #REQUIRED SKU 単価 CDATA #REQUIRED> --------------------------------------------- 補足 製品番号 属性:ID型 名前   要素:文字データ SKU    空 倉庫   属性:NMTOKENS型 単価   CDATA型 この外部サブセットではダメでした。 ヒントでも何でもお待ちしております。m(._.)m

    • ベストアンサー
    • XML
  • 妥当なXML文書

    XML文書で、下記のあ)い)で、妥当なXML文書は あ)になります。 では、い)は妥当ではないとしたら、どの部分が妥当ではないでしょうか。 これが理解できずに困っています。 <a/>は親要素にならないのでしょうか。ルートになるからでしょうか。 よろしくお願いします。 あ) <?xml version="1.0" encoding="Shift_JIS"?> <!DOCTYPE a [ <!ELEMENT a (b?)> <!ELEMENT b (#PCDATA)> ]> <a/> い) <?xml version="1.0" encoding="Shift_JIS"?> <!DOCTYPE a [ <!ELEMENT a (b?)> <!ELEMENT b (#PCDATA)> ]> <a/><b/>

    • ベストアンサー
    • XML
  • JavaScriptを使うとXMLで実体参照されない

    htmlに書き込んだjsで、プルダウンメニュとテキストボックスに入力した検索語で、xmlから条件に合ったデータを抽出し、別のhtmlに書き出すという仕組みなんですが、下記のようにxmlデータに実体参照を使用すると、jsが動きません。なぜでしょうか? もちろん、実体参照の箇所を消去すると、作動します。 お分かりの方、ご教授くださいませ。よろしくお願いいたします。 ★検索エンジン部分(js) function disp(){ var strTitl=parent.up.form.title.value; var strAuthr=parent.up.form.author.value; var objDoc=new ActiveXObject("Msxml2.DOMDocument"); objDoc.async=false; objDoc.load("books.xml"); flg=false; strFlt="/books/book"; if(strTitl!=""){ strFlt+="[(title = '" + strTitl + "')"; flg=true; } if(strAuthr!=""){ if(flg){ strFlt+=" and "; }else{ strFlt+="["; flg=true; } strFlt+="(author ='" + strAuthr + "')"; } if(flg){strFlt+="]";} var clnNod=objDoc.selectNodes(strFlt); with(parent.down.document){ open("text/html"); writeln("<html><head><title></title></head><body>"); for(i=0;i<clnNod.length;i++){ objNod=clnNod.item(i); objTit=objNod.selectSingleNode("title"); objAut=objNod.selectSingleNode("author"); objPrc=objNod.selectSingleNode("price"); objId=objNod.selectSingleNode("@id"); writeln("<table border='1'><tr><td>"); writeln(objId.text + ".</td><td>"); writeln(objTit.text + "(" + objAut.text + ")" + "</td><td>"); writeln(objPrc.text + "円</td></tr></atble>"); } writeln("</body></html>"); close(); } } ★xmlデータ(books.xml) <?xml version="1.0" encoding="Shift_JIS" ?> <!DOCTYPE books[<!ENTITY y2000 "2千円">]> <books> <book id="001"><title>タイトルA</title><author>作者A</author><price>&y2000;</price></book> </books>

    • ベストアンサー
    • XML