外部サブセットについて

このQ&Aのポイント
  • 外部サブセットとは、XML文書の一部を別のファイルに分割して管理する仕組みです。
  • 外部サブセットを使用すると、複数の文書で同じDTDを共有できるため、効率的な文書作成が可能です。
  • 外部サブセットはDTDによって指定される要素や属性を定義し、文書の整合性をチェックする役割も果たします。
回答を見る
  • ベストアンサー

外部サブセットについて

以下が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

noname#105606
noname#105606
  • XML
  • 回答数1
  • ありがとう数2

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

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

ざっと見ただけですが……。 問題点は, ・タイトルの親は製品ではない ・カテゴリは1回と2回が出てきているのに1回となっている ・補足は0回と1回が出てきているのに1回となっている あたりでしょうか。 要素型定義の内容部分には,「どの要素がどの順番で何回出てくるのか」を記述します。 > <!ELEMENT 製品 (タイトル,名前,単価,カテゴリ,補足)> は, ・「製品」という要素の中に ・「タイトル」「名前」「単価」「カテゴリ」「補足」という要素が  ・この順序で  ・それぞれ1回のみ  出てくる ということを意味しています。 慣れないうちは,各要素の親子関係を樹形図に書いてみることをお勧めします。

noname#105606
質問者

お礼

回答ありがとうございます。 意味が理解できました!

関連するQ&A

  • 属性リスト宣言

    以下が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
  • 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
  • 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
  • DTDで、空要素をエラーしたい

    <title></title>のような形のXMLをDTDでエラーにしたいのですが、可能でしょうか? DTDで、 <!ELEMENT title (#PCDATA)> だと、エラーなくスルーしてしまいます。 よろしくお願いします。

    • ベストアンサー
    • 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文書

    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
  • 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
  • RSS Feedの外部ファイル読み込み

    RSS Feedのソースの中に外部ファイルを読み込むことは出来ますでしょうか? 以下のような感じで、RSS Feedのrss.xmlにcontents.xmlをインクルードすることは、可能でしょうか。 可能であれば、どのように記述すれば良いでしょうか? 分かる方、よろしくお願い致します。 rss.xml----------------------------------------------------------- <?xml version="1.0" encoding="UTF-8" ?> <rss version="2.0" xml:lang="ja"> <channel> <title>RSSのタイトル</title> <link>http://~</link> <description>RSSの説明</description> <language>ja</language> <copyright>RSSのコピーライト</copyright> <lastBuildDate>日付</lastBuildDate> <item> <title>タイトル1</title> <link>http://~</link> <description>タイトル1の説明</description> <category>タイトル1のカテゴリ</category> <pubDate>タイトル2の日付</pubDate> </item> ここに「contents.xml」の内容を読み込みたい </channel> </rss> ------------------------------------------------------------------ contents.xml------------------------------------------------------ <?xml version="1.0" encoding="UTF-8" ?> <item> <title>タイトル2</title> <link>http://~</link> <description>タイトル2の説明</description> <category>タイトル2のカテゴリ</category> <pubDate>タイトル2の日付</pubDate> </item> ------------------------------------------------------------------

    • ベストアンサー
    • XML
  • XMLの素朴な疑問です。

    今日からXMLをはじめたもので、右も左も解らない状態なんですが、いろいろ見ていて素朴な疑問が沸いてしまいましたので、質問させてください。 例えば下のように書いたxml文書は正しいのでしょうか? <?xml version="1.0" encoding="Shift_JIS"?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML> <HEAD> <TITLE>XML</TITLE> </HEAD> <BODY> <P>XML</P> </BODY> </HTML> =========================================== <?xml version="1.0" encoding="Shift-JIS"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja"> <head> <title>aa</title> </head> <body><p>XML文書</p></body> </html> ========================================= 実際にIE6で見てみると上はDTDでエラーが出て下はこのファイルの先頭でエラーになります。 この原因を教えていただけませんでしょうか。

    • ベストアンサー
    • XML
  • 外部サブセットのDTDファイルが作れません

    初心者です。 本を読みながらXMLの勉強をはじめました。 表題の、外部サブセットのDTDファイルを作ろうと、拡張子を"dtd"に変えたところ、DTDファイルとして認識していないようです。 (WINDOWマークのアイコンに変わり、開くとアプリケーションを聞かれてしまいます。) 本にはそのようにするとだけしか記載されておらず、どうしていいのかわかりません。 なにかPCの方に入れなければならないものがあるのでしょうか? パソコンはNECのVALUSTAR NXで2年ぐらい前のもの、OSはWINDOWS98、ブラウザIE5.5です。 本当にずぶの素人で何もわからないままはじめたので、質問がこれで適切かどうかもわかりませんが、どなたかお教えください。 よろしくお願いいたします。

    • ベストアンサー
    • XML