■■bbs.ini仕様草案

このエントリーをはてなブックマークに追加
1 所祥寺
さて、かねてより企んでいたbbs.iniですが
とりあえず仕様のひな形などを考えてみました。

■bbs.iniとは?
現在、多くのソフトがbbsmenuを参照して2chの構造を取得していますが
これをより効率良く行うための基本データベースです。

仕様詳細は>>2-10に書き込みますので
特にソフト制作者、bbsmenuなどを参照するスクリプトの制作者の方は
ぜひご意見をお寄せください。
2所祥寺 : 2001/04/14(土) 16:18 ID:96T6KkV2
■はじめに

現在、さまざまなソフト、cgiなどが2chの掲示板の構造をbbsmenuなどに依存し
て取得しています。
私自身、bbsmenuの管理を手伝わせてもらうにあたって、その元になるファイル
というものを作って、そこからbbsmenuやbbstable、board.iniやboard.txtを生
成しているのですが、この仕様がほとんどbbsmenu.htmlそのままというありあ
さまで、成り行きまかせのかなりみっともないものでした・・・・。
特にhtmlタグが入っているだけの元ファイルからbbstable、board.ini
board.txtを生成するのは、かなり汚い処理であり、また拡張性やメニューの仕
様変更に対して、柔軟性が皆無というありさまです(笑)
そんなおり、弐編さんとbbsmenuスレッドで、リファレンスとなるファイルの仕
様を決めてそれを参照するようにすれば、各ソフト、cgi、そしてbbsmenuも一
元的にbbs情報を取得できるのではないかという話になりました。
そんな経緯で、不祥私、所祥寺がとりあえずbbs.ini(仮称)のひな形なんぞを
でっち上げてみようというのがこの草案の趣旨だったりします。
ソフト制作者、cgi制作者のみなさんにご意見を伺えれば、そして果たせるなら
それを利用して頂ければと願っています。
3所祥寺 : 2001/04/14(土) 16:18 ID:96T6KkV2
■概要■

bbs.iniは以下のような要求に応えられる仕様を目指しました。
1 掲示板名称の一覧を取得できる
2 掲示板urlの一覧を取得できる
3 掲示板カテゴリの一覧を取得できる
4 掲示板がどのカテゴリに属しているかを取得できる
5 掲示板がどのような特性を持っているかを取得できる
6 参照するものの、情報の取捨選択が容易である
7 情報が追加された時に、非対応の物でも不都合がないようにする
8 情報を追加する必要がある時に、容易に追加が可能である

当初はセパレータで単純に区切られた定形のリストというものを考えたのです
が 特に6、7、8あたりを考慮すると、仕様の拡張に弱くなってしまうため
に行き詰まってしまいました。
そこでxml風のタグでセパレートするという方向で検討してみました。
4所祥寺 : 2001/04/14(土) 16:19 ID:96T6KkV2
■タグ1■
すべてのタグは名称の最初に2を付加します。これはhtmlタグとの不用意な混同
をなくすためです。

<2bbs></2bbs>
このタグにくくられた範囲は、このiniファイルの属するBBS名称を記述
します。

<2board></2board>
このタグにくくられた範囲が、一つの掲示板情報を記述します。

<2bname></2bname>
このタグにくくられた範囲は板の名称を記述します。

<2burl></2burl>
このタグにくくられた範囲は板のURLを記述します。

<2bcategory></2bcategory>
このタグにくくられた範囲は板のカテゴリを記述します。

<2bsubcat></2bsubcat>
このタグにくくられた範囲は板のサブカテゴリを記述します。
5所祥寺 : 2001/04/14(土) 16:20 ID:96T6KkV2
■タグ2■
<2battr></2battr>
このタグにくくられた範囲は板の属性を記述します。
属性は複数を続けて記述することができます。複数を記述する場合、属性
同士は";"(セミコロン)で区切ります。
属性は当初以下のようなものを用意しますが、これをどう解釈・利用する
かはパーサとソフトが決めます。
2ch 2chのページに付加されます
pink BBSピンクのページに付加されます
machi まちBBSのページに付加されます
teri teri系dat形式の掲示板に付加されます
saki saki系dat形式の掲示板に付加されます
out その他のページに付加されます
intxt BBS内のページに付加されます
bbs 掲示板に付加されます
txt 掲示板以外のページに付加されます
tool ツール系のページに付加されます。

例:2ch批判要望板
<2battr>2ch;in;bbs;teri</2battr>

<2comment></2comment>
このタグにくくられた範囲には、表示を期待する任意の文字列を記述しま
す。
<2comment>タグ内には以下のhtmlタグが記述される可能性があります。
<a></a>
<br>
<font></font>

<2rem></2rem>
このタグにくくられた範囲には、表示を期待しない任意の文字列を記述し
ます。
<2rem>タグ内にはあらゆる他のタグが記述される可能性があります。
6所祥寺 : 2001/04/14(土) 16:20 ID:96T6KkV2
■記述順序■
記述は以下のような規則に則って行われますが、パーサはその順序に依存しな
いように用意することを推奨します。
1 <2board></2board>タグは一行で記述する
2 <2board>タグ内には、以下のタグが以下の順序で記述されている。
<2burl><2bname><2bcategory><2bsubcat><2battr>
3 <2burl><2bname><2bcategory><2bsubcat><2battr>タグは入れ子にしな
い。また、これらのタグを閉じる前にこれらのタグを開かない。
4 <2bbs></2bbs>タグはファイルの先頭に記述する。
5 <2comment></2comment><2rem></2rem>タグは他のタグに入れ子にして
もかまわない
6 <2comment></2comment>は他のタグに入れ子にしない場合一行で記述す

7 同じカテゴリー・サブカテゴリーに属している板は連続した行に記述す
る。
7所祥寺 : 2001/04/14(土) 16:21 ID:96T6KkV2
■タグの拡張■
タグは今後拡張される場合があります。
パーサ制作者は、拡張されたタグの処理を考慮しておかなければなりません。
すなわち、不明なタグを発見した場合に
1 無視する(タグは削除して内容だけを残す)
2 破棄する(タグ及び内容を削除する)
3 文字列として扱う(タグも含めて文字列として扱う)
のいずれかの処理を行うことになります。
8所祥寺 : 2001/04/14(土) 16:21 ID:96T6KkV2
■属性の追加■
2ch以外のBBSでもbbs.iniフォーマットを利用できるように、属性はすで
に存在するものと重複しない文字列であれば、自由に追加できます。
文字列の重複を避けるために、属性の登録手段(たとえば掲示板などで管理)
を用意します。
ただし、これは2ch用のbbs.iniに反映されることを保証するものではなく、
あくまで2ch以外で独自にiniファイルを作成する人のための配慮です。
例:megabbs用bbs.iniを作成するにあたって、弐編さんがmega属性を追加。
9所祥寺 : 2001/04/14(土) 16:21 ID:96T6KkV2
■カテゴリの取得■
カテゴリ、サブカテゴリのリストの取得は、<2bcategory>、<2bsubcat>タグを
全て読み込んで生成する必要があります。
10所祥寺 : 2001/04/14(土) 16:26 ID:96T6KkV2
あ、9で終わった(汗

というふうな感じです。
最終的に仕様が固まったら、2chのbbsmenuはbbs.iniを元として
生成することになり、またbbsmenuのアップロードと同時に最新版の
bbs.iniも公開されることになります。
2ch用閲覧用のソフトなども、bbs.iniを取得するとこで
常に最新の掲示板の状況を把握することができるというわけです。

と、いうわけで、どうぞよろしくお願いします。
11名無しさんの声 : 2001/04/14(土) 17:27 ID:yXmeTOYc
どーせならxml風じゃなくてXMLにしといた方がよくない?
12所祥寺 : 2001/04/14(土) 18:15 ID:96T6KkV2
>>11
実はxmlってよくわかってないので
なんとなくそれ風にしただけだったりします(汗
csvでやるより柔軟性があればよしという感じですね。
13ひろゆき@管直人 ★ : 2001/04/14(土) 18:51 ID:???
まんまXMLだと思われ、、、
14名無しさんの声 : 2001/04/14(土) 19:09 ID:???
よくわからんけど、頑張ってくれ〜

かちゅ〜しゃはbbsmenuを元に2channel.brdを作ってるけど、
これからはbbs.iniを元に2channel.brdを作るってこと?

ツールを作ってる人にこのスレを教えてあげた方がいい?
15所祥寺 : 2001/04/14(土) 19:32 ID:96T6KkV2
>>13
そうなんですか?
どうなってたらXMLなのかがよく判ってないので・・・(笑)

>>14
>これからはbbs.iniを元に2channel.brdを作るってこと?
という使い方をしてもらえるようにと考えてます。

>ツールを作ってる人にこのスレを教えてあげた方がいい?
よろしくお願いします。
なにしろ素人なもので、できるだけ実践的な意見を伺えればと思ってます。
16名無しさんの声 : 2001/04/14(土) 20:32 ID:yXmeTOYc
"&" "<" ">" はエスケープしたほうがいいでしょう。
17名無しさんの声 : 2001/04/14(土) 22:07 ID:???
datファイルのフィールドセパレータの情報っていらんのかな?
18名無しさんの声 : 2001/04/14(土) 22:34 ID:???
カテゴリとか外に出してこんな感じは?
サブカテゴリって何入れるの?

<2bbs>
<2bbsname>BBS名</2bbsname>
<2category>
<2cname>カテゴリ名</2cname>
<2board>
<2bname>板名</2bname>
<2burl>板URL</2burl>
<2battr>板属性</2battr>
<2comment>板コメント</2comment>
<2rem>板その他</2rem>
</2board>
...
</2category>
...
</2bbs>
19所祥寺 : 2001/04/14(土) 23:43 ID:sDwkDw4g
>>16
そのあたりよくわからない所なのですが
bbs.iniの管理が手間になりそうなので、エスケープしないでおこうかと思います。

>>17
<2battr>のteriとsakiという属性がそれです。

>>18
そうすると、板がどのカテゴリーにあるかを判定するのが難しくなるんです。
今の形だとカテゴリの取得がめんどくさい。
どっちにするべきか悩む所なんですよね。
20名無しさんの声 : 2001/04/15(日) 00:02 ID:MZbZon26
>>19bbs.iniの管理が手間になりそうなので、エスケープしないでおこうかと思います。
なんかそれきつそう。その3つはエスケープされないと
XMLパーサを流用できないんで。
21名無しさんの声 : 2001/04/15(日) 00:16 ID:???
>>19
今の形だと、カテゴリに情報持たせようとしたときに困りません?
そういう必要がなければ別にどっちでもいいと思うけど。

エスケープはして欲しいな。ついでにUTF-8にしてくれるといいん
だけど。(といってみる)
22名無しさんの声 : 2001/04/15(日) 00:53 ID:???
>>21
いや〜ん。Shift_JISマンセー!
23所祥寺 : 2001/04/15(日) 01:22 ID:RGelo5.Y
>>20-22
えーっと、HTMLと同様に考えるとまずいんでしょうか?
普通、<や&を表示する場合以外は、生で書きますよね?
このあたり、よく判ってないので、御教授願えるとありがたいです。

>>21
カテゴリに属性は考えてなかったな・・・・
一応、サブカテゴリでなんとかしようと思ってたんだけど。
カテゴリーに属する板群をカテゴリで括った場合、どこに属性入れるか考えないと。
24名無しさんの声 : 2001/04/15(日) 07:25 ID:???
>>23
これのタグの中にHTMLタグを書くときにはエスケープして欲しいと
か、たぶんそゆことです。
25名無しさんの声 : 2001/04/16(月) 03:19 ID:???
あ、XMLのタグって数字で始まっちゃダメじゃなかったっけ?
26所祥寺 : 2001/04/17(火) 12:29 ID:h1PUMxc6
>>24
なるほど。htmlタグと混在させたりするとまずいわけですね。

>>25
げ、そうなんですか?(汗
27名無しさんの声 : 2001/04/17(火) 12:49 ID:???
28名無しさんの声 : 2001/04/17(火) 13:36 ID:???
age
29所祥寺 : 2001/04/17(火) 14:12 ID:h1PUMxc6
>>27
どもです。熟読します。
30[email protected](w : 2001/04/17(火) 22:06 ID:6cvArNG.
XMLに準拠させるか、XML風2ちゃん独自仕様でいくかを決めたいですね。
つーか、もーXMLで逝っちゃいましょ!
カテゴリ情報が必要なら category.xml を用意するってのはどうでしょ?
やっぱめんどーかなー
31ひろゆき@管直人 ★ : 2001/04/17(火) 22:08 ID:???
XML準拠のほうがそれっぽいと思われ、、、
32所祥寺 : 2001/04/17(火) 22:33 ID:h1PUMxc6
>>30
ということです>準拠||独自
XML準拠で行くメリットは大きいと思うんですが
そのあたりも、開発者の方々のご意見伺えればと・・・・
というかXMLの仕様読まないと(汗

>>31
やっぱりそうですか・・・・・
33名無しさんの声 : 2001/04/18(水) 15:53 ID:???
XML準拠に清き一票。

案2)

<?xml version="1.0" encoding="Shift_JIS"?>
<bbs>
&nbsp; <name>BBS名</name>
&nbsp; <category>
&nbsp; &nbsp; <name>カテゴリ名</name>
&nbsp; &nbsp; <board>
&nbsp; &nbsp; &nbsp; <name>板名</name>
&nbsp; &nbsp; &nbsp; <url>板のURL</url>
&nbsp; &nbsp; &nbsp; <attr>板の属性</attr>
&nbsp; &nbsp; &nbsp; <comment>
&nbsp; &nbsp; &nbsp; &nbsp; 表示を期待する任意の文字列
&nbsp; &nbsp; &nbsp; </comment>
&nbsp; &nbsp; &nbsp; <rem>
&nbsp; &nbsp; &nbsp; &nbsp; 表示を期待しない任意の文字列
&nbsp; &nbsp; &nbsp; </rem>
&nbsp; &nbsp; </board>
&nbsp; &nbsp; ...
&nbsp; </category>
&nbsp; ...
</bbs>
34名無しさんの声 : 2001/04/18(水) 16:34 ID:???
となると2ch.dtdとか出てきたりするんですかね。(とか適当なことを言ってみる)
352chブラウザー作者 : 2001/04/18(水) 16:47 ID:AcK3cmwU
>>32
どーでも良いです。
興味が無いわけではなく、決まったものに従うってことです。
XML準拠でもXML風でも、>>18>>33みたいなのならパーサ
書くのにたいした違いはないと思われます。
属性(="value"みたいなの)使ったり、ファイルが複数に分かれたりすると
面倒かも。
>>33のXML宣言にはもちろん属性が使われてるけど、こんなの
読み飛ばすだけなので。
36名無しさんの声 : 2001/04/18(水) 18:21 ID:???
>>34 てきとー。つーか別になくてもいいかも。

<!DOCTYPE bbs [
<!ELEMENT bbs (name, category*)>
<!ELEMENT category (name, board*)>
<!ELEMENT board (name, url, attr, comment, rem?)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT url (#PCDATA)>
<!ELEMENT attr (#PCDATA)>
<!ELEMENT comment (#PCDATA)>
<!ELEMENT rem (#PCDATA)>
]>
37agemasuyo:2001/04/22(日) 02:15 ID:eMMjWV.I
age
38[email protected](w:2001/04/28(土) 21:25 ID:j.6tYqsg
DTD見るの久々でちょっと思い出せないや、
こういうことかな?
<bbs>
<name>2ちゃんねる</name>
<category>
<name>カテゴリ1</name>
<board>
<name>板1</name>
<url>http://xxx.xxx.xxx/xxx/index2.html</url>
<attr>2ch;intxt;bbs;teri</attr>
<comment>コメント</comment>
<rem>なんか文字列</rem>
</board>
<board>
(略)
</board>
</category>
<category>
(略)
</category>
</bbs>

--
<attr>2ch;intxt;bbs;teri</attr>
この辺が改善の余地ありそう、、
39[email protected](w:2001/04/28(土) 21:25 ID:???
あ、インデントミスった・・鬱
40[email protected](w:2001/04/28(土) 21:28 ID:???
しまった、>>33 のDTDだったのね。失敗。
で、Categoryと Boardは重複しないようにIDを設定してほしいです。
こんな感じで。
<board id="accuse">
41名無しさんの声:2001/05/01(火) 23:00 ID:???
これっていつから始まるの?
42:2001/05/10(木) 18:24 ID:MCaHTT5Q
43:2001/05/10(木) 19:09 ID:35VElRq.
44名無しさんの声:2001/05/23(水) 20:15 ID:???
age

これって所祥寺さんが忙しくって進まないの?
45名無しさんの声:2001/06/10(日) 02:17 ID:???
さっさと完成させてほしいのでageます。
46所祥寺:2001/06/10(日) 02:21 ID:oUgvggAs
りょ、了解です。明日中になんとかプロトタイプをアップして
検証してもらえるようにします。

仕事でも締め切りが〜
プライベートでも締め切りが〜
ああ楽しい、ああ楽しい〜
47名無しさんの声:2001/06/10(日) 02:23 ID:???
それでも作者さん達がヴァージョンアップしてくれないと意味ないですよね
かちゅ〜しゃはいつになったら・・・

所祥寺さん頑張ってください
48所祥寺:2001/06/10(日) 02:34 ID:oUgvggAs
頑張ります。
今度はちゃんと告知しないと
緊急とはいえやはり影響出まくりでしたからね。

というわけでダイエットはもうしばらくお待ちください>夜勤さん
49夜勤 ★:2001/06/10(日) 02:37 ID:???
はい、わかりました。
50所祥寺:2001/06/10(日) 03:24 ID:oUgvggAs
そして>>27を熟読中
こんなことで間に合うのか>俺(汗
51名無しさんの声:2001/06/10(日) 08:58 ID:???
>>27 何が何やらさっぱりだった・・・所さんは仕事もあっち方面なんだろうか
52所祥寺:2001/06/10(日) 10:25 ID:oUgvggAs
苦戦中・・・・
53所祥寺:2001/06/10(日) 11:01 ID:oUgvggAs
やっとXML宣言が用意できた。
UTF-8で行こうかと思います。できるでけ・・・・
で、今DTDって何? というのを飲み込みつつあるんだけど
定義の仕方と定義の実装方法の両方で苦戦中(汗

いやぁ、概念だけ知ってても記述出来るわけじゃないですねぇ・・・・
54所祥寺:2001/06/10(日) 12:19 ID:oUgvggAs
なるほど、>>2-9でぐだぐだ書いてたことは
ほとんどXLMそのものの仕様とDTDで記述できることだったわけだ・・・・

現在DTDを記述中。
ところでルートになるタグってどう記述すればいいんだろう?
板を示すタグ<borad></borad>は簡単に記述できるけど
全体を示すタグ<bbs></bbs>って中身は順列になってないもんなぁ・・・・
というあたりで苦戦中(汗
55所祥寺:2001/06/10(日) 12:48 ID:oUgvggAs
こんな感じかな?
<!ELEMENT bbs   (title,(group|board|comment)*)>
<!ELEMENT title  (#PCDATA)>
<!ELEMENT group  (#PCDATA)>
<!ELEMENT board  (name,url,subcat1,subcat2,subcat3,attr)>
<!ELEMENT name   (#PCDATA)>
<!ELEMENT url   (#PCDATA)>
<!ELEMENT subcat1 (#PCDATA)>
<!ELEMENT subcat2 (#PCDATA)>
<!ELEMENT subcat3 (#PCDATA)>
<!ELEMENT attr   (#PCDATA)>
<!ELEMENT comment (#PCDATA)>
最初の一行の記述の仕方が怪しい・・・・
56所祥寺:2001/06/10(日) 12:51 ID:oUgvggAs
違うな
<!ELEMENT group (board|comment)*> <!-- 基本カテゴリー -->
こうか?
57所祥寺:2001/06/10(日) 12:52 ID:oUgvggAs
これも違う
<!ELEMENT group (#PCDATA,(board|comment)*)> <!-- 基本カテゴリー -->
こんな感じ・・・・
58所祥寺:2001/06/10(日) 12:58 ID:oUgvggAs
違うなぁ・・・・
<!ELEMENT bbs (#PCDATA,(group|comment)*)> <!-- これが全体像 最初はBBS名-->
<!ELEMENT group (#PCDATA,(board|comment)*)> <!-- 基本カテゴリ 最初はカテゴリ名-->
<!ELEMENT board (name,url,subcat1,subcat2,subcat3,attr)> <!-- 板の実体 -->
<!ELEMENT name (#PCDATA)> <!-- 板の名称 -->
<!ELEMENT url (#PCDATA)> <!-- 板のurl -->
<!ELEMENT subcat1 (#PCDATA)> <!-- 板のサブカテゴリ1 -->
<!ELEMENT subcat2 (#PCDATA)> <!-- 板のサブカテゴリ2 -->
<!ELEMENT subcat3 (#PCDATA)> <!-- 板のサブカテゴリ3 -->
<!ELEMENT attr (#PCDATA)> <!-- 属性 -->
<!ELEMENT comment (#PCDATA)> <!-- コメント -->
記述方法が正しいかどうかが判らない・・・・
今日中のアップは厳しいかも。
59名無しさんの声:2001/06/10(日) 13:03 ID:???
#PCDATAと他のものを並べるのは曖昧になるから推奨されなかったはず。
でっち上げでもいいから要素を作る。
60所祥寺:2001/06/10(日) 13:10 ID:oUgvggAs
ああ、神様降臨・・・了解です。
<!ELEMENT bbs (s_name,(group|comment)*)> <!-- これが全体像 -->
<!ELEMENT s_name (#PCDATA)> <!-- 基本カテゴリ 最初はカテゴリ名-->
<!ELEMENT group (g_name,(board|comment)*)> <!-- 基本カテゴリ 最初はカテゴリ名-->
<!ELEMENT g_name (#PCDATA)> <!-- 基本カテゴリ 最初はカテゴリ名-->
<!ELEMENT board (b_name,url,subcat1,subcat2,subcat3,attr)> <!-- 板の実体 -->
<!ELEMENT b_name (#PCDATA)> <!-- 板の名称 -->
<!ELEMENT url (#PCDATA)> <!-- 板のurl -->
<!ELEMENT subcat1 (#PCDATA)> <!-- 板のサブカテゴリ1 -->
<!ELEMENT subcat2 (#PCDATA)> <!-- 板のサブカテゴリ2 -->
<!ELEMENT subcat3 (#PCDATA)> <!-- 板のサブカテゴリ3 -->
<!ELEMENT attr (#PCDATA)> <!-- 属性 -->
<!ELEMENT comment (#PCDATA)> <!-- コメント -->
こんな感じかな?
<!ELEMENT bbs (s_name,(group|comment)*)>
こういう書き方で、bbsの要素は、最初にs_name、その後にgrupeとcommentが混在して任意数って意味になります?
61名無しさんの声:2001/06/10(日) 13:29 ID:???
サブカテゴリってなんだかよくわからないんですけど
必ず3つなくてはいけなくて1〜3はそれぞれ違う意味を持ってるん
ですか? そうでないなら

<!ELEMENT board (b_name,url,subcat*,attr)> <!-- 板の実体 -->
<!ELEMENT subcat1 (#PCDATA)> <!-- 板のサブカテゴリ -->

のほうがいいはず。

> <!ELEMENT bbs (s_name,(group|comment)*)>
> こういう書き方で、bbsの要素は、最初にs_name、その後にgrupeとcommentが混在して任意数って意味になります?

yes.
62名無しさんの声:2001/06/10(日) 13:31 ID:???
コピペしたら直し間違えた。

<!ELEMENT board (b_name,url,subcat*,attr)> <!-- 板の実体 -->
<!ELEMENT subcat (#PCDATA)> <!-- 板のサブカテゴリ -->

です。分かると思いますけど。
63所祥寺:2001/06/10(日) 13:40 ID:oUgvggAs
なるほど!
subcat系には?付けて任意にしようかと思ってたんですが
そうやればうまくいきそうですね。
ただ、この部分は串刺しで検索することを想定してるのです。
subcat1で分類、subcat2で分類というふうに切り口を切り替える感じですね・・・。
そのあたりの使い勝手がどうなるか、ちょっと考えてみます。
って、考えてみましたが、その場合カテゴリーの総覧が見れないので
あまり美味しくないですね・・・・
もちろん、全体を読み込んで要素の種類を抜き出せばいいわけだけど。

あ、やっぱりその書き方でよかったですか!
どうも、本当に助かります。
64所祥寺:2001/06/10(日) 13:48 ID:oUgvggAs
えーっと、subcatは例えばこんなふうに使う予定です
subcat1は政治系、アニメ系、学問系など話題別(ほぼ現在のカテゴライズ)
subcat2は実用系、創作系、ファン系など用途別
subcat3はダウン系、アップ系、ポップ系など雰囲気別
という具合にカテゴライズ方法を変えようと思っているわけです。
attrと違うのは、attrは重複や欠損があり得るのですが
subcatは必ずいずれか1つのカテゴリに分類されることが保証される点です。
こうすることで、subcatによって分類しても、リンク漏れが起きないということになります。
65名無しさんの声:2001/06/10(日) 13:50 ID:???
意味が違うわけですね。それならそのままで構わないと思われ
66所祥寺:2001/06/10(日) 13:51 ID:oUgvggAs
subcatは板を分類するため
attrは特定の条件の板を抽出するため
に用意しようということですね。

やっぱり、固定したほうがいいかな?
他にもう少し上手い方法がないか考えて見ます。

ところでDTDさえ出来てしまえばあとはデータを流し込むだけなんですね。
ほとんどDTDの記述がメインで後は作業になる・・・・
67所祥寺:2001/06/10(日) 13:53 ID:oUgvggAs
>>65
はい。でも、もう少し考えてみます。
なにせXMLにふれてまだ12時間程度なので勘所が(汗
とてもとても助かります。ほんとうにありがとう。
68名無しさんの声:2001/06/10(日) 13:54 ID:???
固定でいいと思います。必ずどれかのサブカテゴリに分類されるなら
? も必要ないですね。
69所祥寺:2001/06/10(日) 13:56 ID:oUgvggAs
ちなみに今考えているのはsubcatが増えた場合のことです。
DTDが書き換わって、<borad>の中身が変化するようなことっていうのは
許容範囲なんだろうかと・・・・。
もしそういった変更が許容されるなら(実際は空だとしても)最初は3つ程度にしておいて
必要になってから追加すれば済むのですが・・・
70名無しさんの声:2001/06/10(日) 14:03 ID:???
あ、サブカテゴリの追加もありうるわけですか。
では
<!ELEMENT board (b_name,url,subcat*,attr)> <!-- 板の実体 -->
<!ELEMENT subcat (sc_name,sc_value)> <!-- 板のサブカテゴリ -->
<!ELEMENT sc_name (#PCDATA)> <!-- サブカテゴリ名 -->
<!ELEMENT sc_value (#PCDATA)> <!-- サブカテゴリの値 -->
こんなんでどうですか?
というかattrと区別する必要がないような…。必須かどうかは運用で
カバーすればいいわけですし。
71名無しさんの声:2001/06/10(日) 14:05 ID:???
やっぱり別のほうがいいかな。
attrは重複や欠損もありうるわけですから
<!ELEMENT board (b_name,url,subcat*,attr*)> <!-- 板の実体 -->
のほうがいいかも。
72所祥寺:2001/06/10(日) 14:07 ID:oUgvggAs
違うのか・・・
要素が変化したらDTDを書き換えなければならなくて
結果新しい要素が出てきても、その用途が判らなければ・・・・
つまりパーサが利用しなければ関係ないのか。
パーサ側がDTDを参照してちゃんと解釈すれば
新しく生まれた要素については、それが自分の解釈する対象でないとわかるわけだ。
とか考えたんですけど・・・・・

attrは中身を;(セミコロン)で割って、複数を並べようかと思ってたんですが
やはり一つ一つタグでくくった方がいいですかね?
73名無しさんの声:2001/06/10(日) 14:09 ID:???
汎用のXMLパーサを利用することを考えるなら一つ一つ括ったほうが
断然楽です。bbsmenuと違って多少のデータサイズの増加は気にする
必要もないはずですし。
74所祥寺:2001/06/10(日) 14:10 ID:oUgvggAs
>>73
なるほど、解釈部分を一つのエンジンですませられますね。
じゃ、attr*でいきます。
75所祥寺:2001/06/10(日) 14:13 ID:oUgvggAs
<!ELEMENT bbs   (s_name,(group|comment)*)>          <!-- これが全体像 -->
<!ELEMENT s_name (#PCDATA)>                  <!-- BBS名称「2ちゃんねる」-->
<!ELEMENT group  (g_name,(board|comment)*)>          <!-- 基本カテゴリ -->
<!ELEMENT g_name (#PCDATA)>                  <!-- 基本カテゴリ名称 -->
<!ELEMENT board  (b_name,url,subcat1,subcat2,subcat3,attr*)> <!-- 板の実体 -->
<!ELEMENT b_name (#PCDATA)>                  <!-- 板の名称 -->
<!ELEMENT url   (#PCDATA)>                  <!-- 板のurl -->
<!ELEMENT subcat1 (#PCDATA)>                  <!-- 板のサブカテゴリ1 これは基本カテゴリと同じにしよう-->
<!ELEMENT subcat2 (#PCDATA)>                  <!-- 板のサブカテゴリ2 -->
<!ELEMENT subcat3 (#PCDATA)>                  <!-- 板のサブカテゴリ3 -->
<!ELEMENT attr  (#PCDATA)>                  <!-- 属性 -->
<!ELEMENT comment (#PCDATA)>                  <!-- コメント -->
76名無しさんの声:2001/06/10(日) 14:18 ID:???
>>70案は却下ですか?
77所祥寺:2001/06/10(日) 14:18 ID:oUgvggAs
あ、コメントが変だ。こうです。
<!ELEMENT bbs   (s_name,(group|comment)*)>          <!-- これが全体像 -->
<!ELEMENT s_name (#PCDATA)>                  <!-- BBS名称「2ちゃんねる」-->
<!ELEMENT group  (g_name,(board|comment)*)>          <!-- 基本カテゴリ -->
<!ELEMENT g_name (#PCDATA)>                  <!-- 基本カテゴリ名称 -->
<!ELEMENT board  (b_name,url,subcat1,subcat2,subcat3,attr*)> <!-- 板の実体 -->
<!ELEMENT b_name (#PCDATA)>                  <!-- 板の名称 -->
<!ELEMENT url   (#PCDATA)>                  <!-- 板のurl -->
<!ELEMENT subcat1 (#PCDATA)>                  <!-- 板のサブカテゴリ1 -->
<!ELEMENT subcat2 (#PCDATA)>                  <!-- 板のサブカテゴリ2 -->
<!ELEMENT subcat3 (#PCDATA)>                  <!-- 板のサブカテゴリ3 -->
<!ELEMENT attr  (#PCDATA)>                  <!-- 属性 -->
<!ELEMENT comment (#PCDATA)>                  <!-- コメント -->

忘れ物はないかな?
確認してみる。
78所祥寺:2001/06/10(日) 14:19 ID:oUgvggAs
>>76
おっと、見落としてました。
ちょっと待ってください。理解するのに時間を・・・
79名無しさんの声:2001/06/10(日) 14:19 ID:???
ちなみに>>70のようにサブカテゴリを定義するとサブカテゴリの追加が
発生したときにも自動的に認識できるようアプリケーションを設計できる
はず…。
80名無しさんの声:2001/06/10(日) 14:21 ID:???
sc_nameの値は話題別、用途別、雰囲気別みたいになって
アプリケーションはそれをキーに串刺し検索できる。
サブカテゴリの追加があっても名前と値のペアを追加するだけ。
というのを想定しています。
81名無しさんの声:2001/06/10(日) 14:24 ID:???
「sc_nameの値」って用語が変だった。
「sc_nameの内容」です。
82所祥寺:2001/06/10(日) 14:24 ID:oUgvggAs
なるほど、そうですね。
こういう使い方もできるのか・・・・
でわ
<!ELEMENT bbs   (s_name,(group|comment)*)> <!-- これが全体像 -->
<!ELEMENT s_name (#PCDATA)>         <!-- BBS名称「2ちゃんねる」-->
<!ELEMENT group  (g_name,(board|comment)*)> <!-- 基本カテゴリ -->
<!ELEMENT g_name (#PCDATA)>         <!-- 基本カテゴリ名称 -->
<!ELEMENT board  (b_name,url,subcat,attr*)> <!-- 板の実体 -->
<!ELEMENT b_name (#PCDATA)>         <!-- 板の名称 -->
<!ELEMENT url   (#PCDATA)>         <!-- 板のurl -->
<!ELEMENT subcat (sc_num,sc_name)>      <!-- 板のサブカテゴリ -->
<!ELEMENT sc_num (#PCDATA)>         <!-- サブカテゴリの系列番号 -->
<!ELEMENT sc_name (#PCDATA)>         <!-- サブカテゴリの名称 -->
<!ELEMENT attr  (#PCDATA)>         <!-- 属性 -->
<!ELEMENT comment (#PCDATA)>         <!-- コメント -->
83所祥寺:2001/06/10(日) 14:27 ID:oUgvggAs
あとはattrの中身を決めてやればOKかな?
84所祥寺:2001/06/10(日) 14:30 ID:oUgvggAs
うわー。今、このスレッド読み返してたら
今まで訳のわからなかったことが判るようになってた(笑)
ありがとうございます>DTDとかXML書いてくれた方々
85Dax:2001/06/10(日) 16:53 ID:LfUtys0k
PCDATAもいいんですが、
アトリビュートにしてもらえると取得が楽で嬉しいんですよねー。
↓こんな感じ、
<bbs name="2channel">
 <group name="案内">
  <board id="entrance" name="ラウンジ" url="http://corn.2ch.net/entrance/">
   <subcat></subcat> <attr></attr> <comment></comment>
  </board>
  <board id="qa" name="初心者・質問" url="http://saki.2ch.net/qa/">
   <subcat></subcat> <attr></attr> <comment></comment>
  </board>
 :
86所祥寺:2001/06/10(日) 22:20 ID:oUgvggAs
>>85
どもです。
実は・・・・アトリビュートの使い方がよくわからないんです・・・・
もしよければATTLISTのメリット(は取得が楽ってことですか)とデメリットを教えていただけるとありがたいです。
あと、DTDの記述もよくわからないんです>ATTLIST
もしかして、<attr>なんかはATTLIST使った方がいいんじゃないかとか思ってるんですが
そこまで理解を進める余裕が・・・・(汗
87所祥寺:2001/06/10(日) 22:33 ID:oUgvggAs
例えば<attr>はこんな感じなのかな?
<!ATTLIST attr urltype(2ch|pink|machi|mega|ame2|15ch|other)2ch>
<!ATTLIST attr logtype(new|old|other)new>
<!ATTLIST attr pagetype(bbs|text|toolother)other>
<!ATTLIST attr plascetype(in|out)in>
88名無しさんの声:2001/06/10(日) 22:38 ID:4xoKYR8c
>>82
これだとboard要素型内にsubcat要素が一個、
subcat要素型内にsc_num要素型とsc_name要素型が一個ずつ、
ということになるけどいいの? サブカテゴリって複数つけるんじゃないの?

……何か間違えてるのかな……。
89所祥寺:2001/06/10(日) 22:41 ID:oUgvggAs
よくないです(汗
<!ELEMENT board  (b_name,url,subcat*,attr*)> <!-- 板の実体 -->
90名無しさんの声:2001/06/11(月) 10:58 ID:???
とりあえず貼っておきます。
http://corn.2ch.net/test/read.cgi?bbs=php&key=988816430&st=118
91所祥寺:2001/06/11(月) 20:08 ID:0Kczj4uQ
>>90
ありがとうございます。>>87みたいなやりかたはよくないのか・・・・・
92名無しさんの声:2001/06/17(日) 12:41 ID:???
>>90の板の人たちに頼んじゃったほうがいいんじゃないのかな、
所祥寺さん自身も忙しそうなんだし。
93名無しさんの声:2001/06/24(日) 10:09 ID:???
上げときます
94名無しさんの声:2001/07/08(日) 09:04 ID:???
所祥寺さん登場age
95名無しさんの声:2001/07/25(水) 14:29 ID:???
定期age
96ヒロヒト:2001/07/25(水) 15:02 ID:MrJe2qVM
97ヒロヒト:2001/07/25(水) 15:03 ID:m7w./Xuo
98ヒロヒト:2001/07/25(水) 15:04 ID:MrJe2qVM
99ヒロヒト:2001/07/25(水) 15:05 ID:m7w./Xuo
100ヒロヒト:2001/07/25(水) 15:05 ID:m7w./Xuo
100
101