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

Re: [Q] How to write SGML



武藤@Debianぷろじぇくとです。

元SGMLドキュメント関連の会社員だったりする :-)
#おまけに卒論のときのテーマだったりする

Sat, 25 Sep 1999 13:59:11 +0900, [Q] How to write SGML wrote about Tomohiro KUBOTA <kubota@xxxxxxxxxxxxxxxxxxxxx> (<19990925135837U.kubota@xxxxxxxxxxxxxxxxxxxxx>):
kubota> debian-devel@debian.or.jp と debian-devel@lists.debian.org で
kubota> 書いている、i18n についての文書を SGML にして、DDP による管理へと
kubota> 移行することを考えています。

おぉ。

kubota> そこで、SGML で書き直す必要があり、debiandoc-sgml-doc パッケージに
kubota> 含まれている SGML のマニュアルを読んでいます。
kubota> 
kubota> しかし、DDP に登録されているさまざまな SGML ファイルは、あきらかに、
kubota> debiandoc-sgml-doc に含まれているマニュアルに書かれている知識
kubota> だけでは書くことができません。
kubota> 
kubota> たとえば、たいていの SGML ファイルで、先頭は次のようになっています。
kubota> 以下に示すのは、debian-policy 3.0.1.1 に含まれる、
kubota> /usr/doc/policy.sgml.gz の先頭からの抜粋です。
kubota> 
kubota> -------
kubota> <!doctype debiandoc system [
kubota> <!-- include version information so we don't have to hard code it
kubota>      within the document -->
kubota> <!entity % versiondata SYSTEM "version.ent"> %versiondata;
kubota> ]>
kubota> <debiandoc>
kubota> -------

これは debiandoc という文書型定義(実体はdebiandoc.dtd)を使いつつ、追加実
体参照としてversiondata(これはpolicy.sgmlのバージョンを示す)を追加してる、
ということですね。実体参照はマクロみたいなもんで、使いこなすと便利です。

kubota> しかし、/usr/doc/debiandoc-sgml/debiandoc-sgml.txt.gz によると、
kubota> 
kubota> -------
kubota>      The first line of the document should be
kubota> 
kubota>           <!doctype debiandoc public "-//DebianDoc//DTD DebianDoc//EN">
kubota> 
kubota>      or
kubota> 
kubota>           <!doctype debiandoc system>
kubota> 
kubota>      to indicate that the document is a Debiandoc-SGML file.
kubota> 
kubota>      The document should start with the `<book>' tag and end with
kubota>      `</book>'.

文書型定義を見る限り、<debiandoc>が最初で、その中に<book>構造が入ってま
すね。ただし、<debiandoc>タグは開始タグ、終了タグ共に省略できる(o o)ので、
入れても入れなくてもかまわないです。だから、debiandoc-sgml.txtの説明は間
違いではありません。

#僕はo oがあっても、なんとなく気持ちが悪い&実装の処理がめんどくなる
  &XMLに移行しにくくなる ので省略しないようにしてます。

kubota> とあり、これを勉強しただけでは policy.sgml.gz のような書き方はできません。
kubota> 
kubota> たぶん、debiandoc-sgml だけの知識では SGML は書けないのでしょうが、
kubota> なにを勉強すればいいのでしょうか。それとも、てきとうな SGML ファイル
kubota> をテンプレートにして作ってしまってもかまわないのでしょうか。

それほど用意されてるタグは多くないので、Emacs+sgml-modeでCtrl+c
Ctrl+e して出てくる候補から選んでいけばある程度はできると思います。
タグの意味さえわかってしまえばHTMLとたいして変わりません。

#というか少ないからささっとタグマニュアルを書けそうな気もする

XEmacsのdebiandoc.dtd用のfaceリストを誰か作ってくれんかなぁ…
-- 
武藤 健志 (from 自宅)
  E-Mail: Debian JPプロジェクト kmuto@debian.or.jp
          Debianプロジェクト    kmuto@debian.org
          いそたーねっと協会    kmuto@xxxxxxxxxxxxx
          トップスタジオ        kmuto@xxxxxxxxxxxxxxx
  URI: http://www.topstudio.co.jp/~kmuto/