[xyzzy:00703] Re: SGML/XML
- Subject: [xyzzy:00703] Re: SGML/XML
- From: "mwakahara" <wakahara@xxxxxxxxxxxxxxx>
- X-mailer: Microsoft Outlook Express 4.72.3110.5
こんにちわ。
>ご希望のものとは、だいぶ違うかもしれませんが、
>html-modeのカスタマイズしたのがありますので、よろしかったら
>どーぞ。
ありがとうございます。試してみます。
>| 括弧に対応するように、タグに対応したインデントがついて、カレントの内容を
外部
>| のパーサにリダイレクトして、そのstdoutとstderrを違う窓(バッファというの
です
>| か?)に戻してくれるような感じです!
>
>パーサに食わせるのは問題ないですね。ただ、タグが DTD で動的に変
>えられるんですよね? そこら辺が面倒かな。
>
>| もっといいのはアクティブにパーサが効いていて、次に入れるタグ(DTDというも
の
>| で記述しておく)を一覧表示するという感じでしょうか?
>
>DTD のパーサを作らなきゃならないわけですね? そもそも DTD 自体、
>ちらっと眺めたことがあるぐらいだから、どれぐらい複雑な定義が出
>来るのかもわかってなかったりします。例えば HTML の定義だったら、
>BODY は一度だけしか指定できなくて、HEAD の後ろになければならな
>い、みたいなことまで定義できるんでしょうか?
定義できます。HTMLのDTDは持ってるけど、詳しくみてないので今どうなっているの
かはわかりません。
例えばの内容なら、
<!ELEMENT HTML - - (HEAD, BODY)>
HEADが1つだけ必ずあって、から、BODYが1つだけ必ずある、となります。
構造表現のためのルールは簡単で、
出現回数は(0|1|たくさん)で指定できます。2個だけあるのような個数を表す書き
方はできません。ただし、
HEAD, HEAD, BODYのようには書けます。
要素間の関係は、","が順序どおり、"&"が順序なしで両方とも、"|"が順序なしで
どっちか一方が、現れるとなります。
これだけです。
ルールが簡単な分、実際に使えるDTDを作るのは骨が折れます。
>| もっともっといいのはそのタグの関係に対して$違う属性,例えばHTMLタグのよう
な
>| ものを関連付けしてブラウザでプレビュできるような感じです(そのまま保存で
きれ
>| ばなおよし)。
>
>意味がよくわかんない(^^;
例えば、
<book>
<title>本の名前</title>
<chapter>
<title>章の見出し</title>
<body>
<para>章の本文</para>
</body>
<section>
<title>節の見出し</title>
<body>
<para>節の本文</para>
</body>
</section>
</chapter>
</book>
のような構造のとき、<chapter>の中の<titie>に<H1>を,<section>の中の<title>に
<H2>を割り当てるといったマッピングのルールを設定して、そのルールに基づいて変
換された内容をHTMLブラウザにリダイレクトするということです。
つまり、ダイナミックな変換処理系を内蔵するという感じです。変換処理系というと
何ですが、要は文字列置換です。ただし、並びの関係以外に構造上の関係(コンテキ
ストと呼ばれる)をサポートする必要がありますが。
このとき、ユーザはDTDとインスタンス(DTDに沿ってタグ付けされたデータ)以外に
マッピングのルールを書く必要があります。
レイアウト処理系までも作って内蔵させようとすると難儀そうなので、レイアウト処
理系にHTMLブラウザを利用するという感じです。
www.jclark.comにJadeというアプリケーションがありますが、これはDSSSLという、
マッピングのルールのための仕掛けの実装アプリケーションで、DSSSLはSchemeを基
にして設計されています。
ちなみにInterleafというDTPの剛毛(毛が生えた程度よりもっと上)アプリケーショ
ンも本体はInterleafLispインタプリタでできていて、LispのコードによりDTPアプリ
ケーションになっていて、Lispコードを追加や変更して容易にカスタマイズができる
アーキテクチャになっているということです。
余談ですが、Interleaf Lispのカスタマイズができる人が日本にはほとんどいなく
て、ほんの少しのできる人のところに集中するため、言い値の世界だそうです。
今はInterleaf人気は下降一途ですが、それでも大手の企業(例えばT自動車)なんか
には根強いため、実装者の要求はまだまだ続くと思われます。
興味ある人いますか?> Lisper
以上、よろしくお願いします。
mwakahara <wakahara@xxxxxxxxxxxxxxx>