Goto (trpg-xml ML) HTML Log homepage
Date: Wed, 28 Jul 1999 00:07:43 +0900
From: 梶田晃一 <kajita@trpg.net>
Subject: [trpg-xml:00022] シナリオ DTD[ シナリオ製作者 ]
To: trpg-xml@trpg.net (送る用)
Message-Id: <199907271505.AAA20305@pk.highway.ne.jp>
X-Mail-Count: 00022
お世話になっています。梶田です。
昨日書いてみた"シナリオDTDの説明"と"XMLの説明"の
続きを書いてみたいと思います。
本日はシナリオ製作者を示している "playwright要素" です。
─────────────────────────────→
DTDファイル(scenario.dtd)
<!---------------------------------------------------------
ELEMENT名 :playwright
親ELEMENT :scenario_infomation
子ELEMENT :
属性 :xml::link は リンクの種別を示す。 (値:CDATA デフォルト値:#FIXED "locator")
href は リソースを指す (値:CDATA デフォルト値:#REQUIRED)
role は役割を示す。例としては 画像製作者とか (値:CDATA デフォルト値:#REQUIRED)
概要 :シナリオ製作者を示す
構文 :<playwright href ="対象リソース" role = "役割" ></playwright>
利用方法 :<playwright href ="#梶田晃一" role = "XML担当" ></playwright>
注意点 :
製作者 :梶田晃一(kajita@trpg.net)
---------------------------------------------------------->
<!-- playwright は シナリオ製作者を示す -->
<!ELEMENT playwright EMPTY >
<!-- 属性 xml::link は リンクの種別を示す。 -->
<!ATTLIST playwright xml::link CDATA #FIXED "locator">
<!-- 属性 の href は リソースを指す -->
<!ATTLIST playwright href CDATA #REQUIRED>
<!-- 属性 role は役割を示す。例としては 画像製作者とか -->
<!ATTLIST playwright role CDATA #REQUIRED >
─────────────────────────────→
要素 "playwright" は概要で示している通り、シナリオ製作者を示しています。
ちなみに要素名はどれも
・概要<要素の意味>をワンフレーズで表そうとしている
・アプリケーションの変数名にも使用できるように英語を使っている
となっていますが、英語が苦手な為あまり意味がソグワナイ単語を
使用している場合があると思われます。
(playwright は英和辞典によると、"脚本家" です)
要素の定義
<!ELEMENT playwright EMPTY >
で示している通り、子要素はありません。(EMPTY)
要素は子要素と属性に情報を保持しますが、子要素を持たない "playwright" は
その属性に関係する情報を全て保持します。
その属性を見てみますと
・xml::link
・href
・role
が"playwright"の属性です。
それらは例を見ていただけると一番判りやすいと思いますが
例1
<playwright href ="#梶田晃一" role = "XML担当" ></playwright>
hrefでここで示したい人物を表し、roleでその人物の担当部分を示す様に
しています。ですので、他の例を考えてみますと
例2
<playwright href ="#シナリオ花子" role = "文章作成" ></playwright>
<playwright href ="#グラフィック一郎" role = "画像作成" ></playwright>
見たいな感じでそのシナリオに携わった人物とその役割を示す事が出来ます。
また、hrefの所で出てきた "#シナリオ花子" の # と
残りの属性 xml::link は何のために在るのかと言いますと、
「リンクを張るために存在する」
っていうのが理由です。
この要素が使用される "scenario" の中でその人物が詳しく説明されている
部分に対しリンクを張り、アプリケーションや表示の時に示していこう
というものです。
ここで謝っておきたい事があるのですが、前回お話した "scenario_infomation" の
説明時にリンクの定義をしていなかったのですが、それを付け加えておかないと
"scenario_infomation" の子要素である "playwright" でリンクを使えないのですが
書き忘れていました。
<!-- 属性 xml::link は リンクの種別を示す。 -->
<!ATTLIST playwright xml::link CDATA #FIXED "locator">
を "scenario_infomation" の属性に付け加えておきました。
─────────────────────────────→
XMLの説明
前回要素や属性の定義の仕方を漠然と示しましたが、それらが
どの様に使われるのかを説明していませんでした。のでそれを示して
見たいと思います。
・なぜ XML の要素と属性を決めるのか?
XMLの使用の仕方は色々在りますが、僕が提案したいシナリオDTDは
"XMLを使用しシナリオに存在するデータを構造的にアプリケーションで
把握できる様にしたい"
を考えています。
その為に、"各要素と属性でどのような情報を保持しているのか" を
基本に定義を行っています。
ですので今回の要素 "playwright" は子要素を持たず、その属性だけで
情報を保持していると考えています。
・属性の実際の使われ方
今回の"playwright"にある属性の使用の仕方は各属性の定義にあった
使い方をしています。
属性の定義 href , role とも
値の候補 CDATA
デフォルト値 #REQUIRED
が使われています。CDATAは前回示した通り「任意の文字を書いて良い事」を
#REQUIREDは「その属性は必須」である事を示しています。
例
<playwright href ="#シナリオ花子" role = "文章作成" ></playwright>
─────────────────────────────→
この様に今回書いてきましたが、XMLの説明やDTDの定義で
おかしい事が在ると思います。(説明足らずな所も色々在ると思いますし)
ですので、何か問題点がありましたら、ご連絡ください。
これからもこんな感じで続けていきたいです。
よろしくお願いします。
p.s. 説明をするってのは難しいですし自分の復習にもなりますね。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
梶田晃一(KZ → KAH)
Email:kajita@trpg.net TRPG用
kajita@pk.highway.ne.jp 個人用
WWW:http://www.trpg.net/user/a-GoGo/
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━