Goto (trpg-xml ML) HTML Log homepage
Date: Tue, 27 Jul 1999 00:27:28 +0900
From: 梶田晃一 <kajita@trpg.net>
Subject: [trpg-xml:00021] シナリオ DTD 作成の話 [ シナリオ情報 ]
To: trpg-xml@trpg.net (送る用)
Message-Id: <199907261525.AAA11282@pk.highway.ne.jp>
X-Mail-Count: 00021
お世話になっています。梶田です。
以前、Webアドレスで紹介したDTDですが、
さすがにあれでは何の説明にもなっていないので
部分部分を要素単位で説明していきたいと思います。
〈何かご指摘等ありましたら、ご連絡入れていただければ幸いです。〉
まず、最初は小林さんも示していらした、シナリオ情報部です。
ファイルとしてはscenaio.dtd内に入っています。
──────────────────────────────────→
<!---------------------------------------------------------
ELEMENT名 :scenario_infomation
親ELEMENT :scenario
子ELEMENT :playwright , date , exhibit_place , number_persons , outline , hints
属性 :system は 想定システムを示す。システムを特定せずにジャンルだけでも良い。 (値:CDATA デフォルト値:#IMPLIED)
member は シナリオへの人数を示す。最小人数、期待人数、最大人数の順番で示したい。 (値:NMTOKENS デフォルト値:#IMPLIED)
概要 :シナリオについての情報を示す
構文 :<scenario_infomation system ="対象システム" member = "人数">シナリオの情報</scenario_infomation>
利用方法 :<scenario_infomation system ="ファンタジー" member = "2 4 6">
<playwright href ="#梶田晃一" role = "XML担当" ></playwright>
<date version ="18-Jul-1999"></date>
<exhibit_place uri ="http://www.trpg.net/user/a-GoGo/"></exhibit_place>
<outline><paragragh>シナリオの概要はこんな感じで書きます。</paragragh></outline>
<hints><paragragh>シナリオをやる時には電気を薄暗くしてみると・・・</paragragh></hints>
</scenario_infomation>
注意点 :
製作者 :梶田晃一(kajita@trpg.net)
---------------------------------------------------------->
<!-- scenario_infomation は シナリオについての情報を示す -->
<!ELEMENT scenario_infomation (playwright)*,(date)*,(exhibit_place)*,(outline)?,(hints)? >
<!-- 属性 system は 想定システムを示す。 -->
<!ATTLIST scenario_infomation system CDATA #IMPLIED >
<!-- 属性 member は シナリオへの人数を示す。最小人数、期待人数、最大人数の順番で示したい。 -->
<!ATTLIST scenario_infomation member NMTOKENS #IMPLIED >
──────────────────────────────────→
実際は、他の要素(scenario,playwright,date,exhibit_place, number_persons,outline,hints)の
説明をしないとこの要素全体を説明した事にはなりませんがちと、手抜きで
スイマセン。
まず、この要素の目的ですが、概要に示してある
「シナリオについての情報を示す」
です。
では、どのような情報がこの要素から得られるのかというと
1.1 作者
1.2 制作年月日 (バージョンも必要?)
1.3 対象システム
1.4 対象プレイヤー数
1.6. シナリオの概要
1.7 セッションやシナリオについての注意点
(小林さんのメールから引用)
と公開場所が得られます。
それらは何処で示されるかというと
1.1 作者 → 要素 playwright
1.2 制作年月日 (バージョンも必要?) → 要素 date
1.3 対象システム → 属性 system
1.4 対象プレイヤー数 → 属性 member
1.6. シナリオの概要 → 要素 outline
1.7 セッションやシナリオについての注意点 → 要素 hints
公開場所 → 要素 exhibit_place
で示しています。
小林さんのメール提案では
1.5 対象レベル
が示されていましたが、今回は外しててみました。
理由としては、今後各システム毎にこの "scenario_infomation" を拡張していくと
思いますのでその時に対象レベルを入れたらと思いまして、ここには入れませんでした。
──────────────────────────────────→
これがシナリオ情報を保持する要素"scenario_infomation"の説明です。
が、XMLを知らない方や、実は根本的に僕の知識が間違っているといけないので
次にXMLの要素定義の読み方を書いてみたいと思います。
1 XML の説明
1.1 コメント
最初に書いておくべきことは、XMLにおいてコメント部位
(どんな事でも書いても良い部位)は以下の形式で書かれます。
<!-- コメント中身 -->
ですので、例えば
<!-- scenario_infomation は シナリオについての情報を示す -->
はコメントで実際のXMLの文章とは関係ない部分です。
また、コメント中身で改行を入れても良いので、最初に25行をかけて
書いてある部位はコメントになっています。
1.2 要素の定義(情報の受け皿になります)
(以下で出てくる子要素のホントの名前は内容モデルといいます)
要素として定義を行う場合以下のように行います。
<!ELEMENT 要素名 子要素 >
ですので例えば、
<!ELEMENT scenario_infomation (playwright)*,(date)*,(exhibit_place)*,(outline)?,(hints)? >
は要素名が「scenario_infomation」で子要素が
「(playwright)*,(date)*,(exhibit_place)*,(outline)?,(hints)?」
と言う事です。
子要素とは例えば、
<scenario_infomation system ="ファンタジー" member = "2 4 6">
<playwright href ="#梶田晃一" role = "XML担当" ></playwright>
<date version ="18-Jul-1999"></date>
<exhibit_place uri ="http://www.trpg.net/user/a-GoGo/"></exhibit_place>
<outline><paragragh>シナリオの概要はこんな感じで書きます。</paragragh></outline>
<hints><paragragh>シナリオをやる時には電気を薄暗くしてみると・・・</paragragh></hints>
</scenario_infomation>
ってな感じで <scenario_infomation> </scenario_infomation> の間にはさまれる
要素の事です。
1.3 属性の定義(要素に特定の情報を与えます。)
属性の定義を行うと場合は以下のように行います。
<!ATTLIST 対象要素名 属性名 値の候補 デフォルト値 >
ですので例えば
<!ATTLIST scenario_infomation system CDATA #IMPLIED >
は対象要素が「scenario_infomation」、属性名が「system」
値の候補が「CDATA」、デフォルト値が「#IMPLIED」になります。
値の候補 CDATA は任意の文字を書いて良い事を示しています。
デフォルト値 #IMPLIED はこの属性が省略する事が出来る事を示しています。
あんまし良い説明になっていませんが、上記の様に要素と属性を
定義する事で、どの要素が何の情報を提供するのかを示す事が出来ます。
うーん。やはり良い説明ではないですね。
これから、コンナ感じでDTDの説明なんかをやっていきたいと思いますけど
どうでしょうか? DTDへの指摘や、XMLの説明への指摘などをお待ちしております。
それでは。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
梶田晃一(KZ → KAH)
Email:kajita@trpg.net TRPG用
kajita@pk.highway.ne.jp 個人用
WWW:http://www.trpg.net/user/a-GoGo/
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━