[Date Prev] [Date Index] [Date Next]
[Thread Prev] [Thread Index] [Thread Next]

[xyzzy:00708] Re: SGML/XML



こんにちわ。

>| 例えばの内容なら、
>| <!ELEMENT HTML - - (HEAD, BODY)>
>| HEADが1つだけ必ずあって、から、BODYが1つだけ必ずある、となります。
>
><!ELEMENT HTML O O  (HEAD, (BODY|FRAMESET), PLAINTEXT?)>
>
>こうなってました。"O O" ってのは、開始タグと終了タグがオプショ
>ナルってことで、"- -" だと必須ってことですね?

そうです。でも、XMLからはタグの省略は無くなりました。
<!ELEMENT HTML (HEAD, (BODY|FRAMESET), PLAINTEXT?)>になります。

>| ルールが簡単な分、実際に使えるDTDを作るのは骨が折れます!
>
>これならパーサ書けるかも(^^;


あと、ENTITYという変数というかエイリアスみたいな仕組みとATTLISTという属性を
付加できる仕組みがあります。

ENTITYは、例えば、<!ENTITY mycar "カローラ">としておいて、
インスタンスで、「私の車は&mycar;です。」と書いておけば、
車を買い替えたとき、いちいちインスタンスを修正しなくても、大元で、
<!ENTITY mycar "セルシオ">
と変えれば、それまでに作成したインスタンスすべて変わります。

ATTLISTは、何らかの処理をさせるときのきっかけになります。これは先程の
<chapter>の<title>, <section>の<title>みたいなコンテキストと併用されます。
例えば、<!ELEMENT listitem - - (#PCDATA)>
           <!ATTLIST listitem type (order|unorder) unorder>としておいて、
インスタンスで、
<listitem type="unorder">犬</list>
<listitem type="unorder">猫</list>としたら、
・ 犬
・ 猫
<listitem type="order">犬</list>
<listitem type="order">猫</list>としたら、
1. 犬
2. 猫
のようにできます。このときunorderのときの頭には・が付くとか、orderのときの連
番の形式(例えば、a), b))などはマッピングルールで定義します。

あと、先程のコンテキストについても
親-子, 祖先-子孫, 兄-弟(長男, 末っ子, 一人っ子), によってきっかけが作れま
す。

例えば、
<list>
<listitem type="order">犬</list>
<listitem type="order">猫</list>
</list>としたら、
(listの子ども)の(属性typeの値がorder)の(最初)の(listitem)のところで、i=1にし
て、(それ以降)のlistitemにはi++した数字を頭に付ける、もし、一個だけ(一人っ
子)だったら、属性値に関わらず、数字は付けない、といった感じです。

他にも仕様としてはいろいろありますが、でもそんなのサブセットでいいです。
世に出ているSGML対応アプリケーションの中でも、すべてのSGML仕様を満たしている
製品はありません。
そういう意味で、SGML仕様から現実的に実装可能そうなのだけを抜き出してできたの
がXMLです。

>| のような構造のとき、<chapter>の中の<titie>に<H1>を,<section>の中の
<title>に
>| <H2>を割り当てるといったマッピングのルールを設定して、そのルールに基づい
て変
>| 換された内容をHTMLブラウザにリダイレクトするということです。
>
>なるほど。「例えば」程度の規模なら何とかなるかも。まあそれ以上
>の規模でも基本は一緒だから、処理時間だけの問題かな? ネタとして
>も面白そうですしね。


がんばれー!お願いします。
コーディングとかは非力なため、協力できないかもしれませんが、テスト用のDTDと
かインスタンスとかマッピングルールとか作ったり、情報収集とかできることで協力
します。

>| 余談ですが、Interleaf Lispのカスタマイズができる人が日本にはほとんどいな
く
>| て、ほんの少しのできる人のところに集中するため、言い値の世界だそうです。
>
>あっという間に億万長者?(^^;


クライアント見つければ、可能だと思います。ただし、景気の悪い現況ではちょっと
辛いかな?
でも、うちからの仕事は安くやってくださいね。


以上、よろしくお願いします。

mwakahara <wakahara@xxxxxxxxxxxxxxx>

Index Home