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だと思われ、、、
よくわからんけど、頑張ってくれ〜
かちゅ〜しゃは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
"&" "<" ">" はエスケープしたほうがいいでしょう。
datファイルのフィールドセパレータの情報っていらんのかな?
カテゴリとか外に出してこんな感じは?
サブカテゴリって何入れるの?
<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パーサを流用できないんで。
>>19 今の形だと、カテゴリに情報持たせようとしたときに困りません?
そういう必要がなければ別にどっちでもいいと思うけど。
エスケープはして欲しいな。ついでにUTF-8にしてくれるといいん
だけど。(といってみる)
23 :
所祥寺 : 2001/04/15(日) 01:22 ID:RGelo5.Y
>>20-22
えーっと、HTMLと同様に考えるとまずいんでしょうか?
普通、<や&を表示する場合以外は、生で書きますよね?
このあたり、よく判ってないので、御教授願えるとありがたいです。
>>21 カテゴリに属性は考えてなかったな・・・・
一応、サブカテゴリでなんとかしようと思ってたんだけど。
カテゴリーに属する板群をカテゴリで括った場合、どこに属性入れるか考えないと。
>>23 これのタグの中にHTMLタグを書くときにはエスケープして欲しいと
か、たぶんそゆことです。
あ、XMLのタグって数字で始まっちゃダメじゃなかったっけ?
26 :
所祥寺 : 2001/04/17(火) 12:29 ID:h1PUMxc6
>>24 なるほど。htmlタグと混在させたりするとまずいわけですね。
>>25 げ、そうなんですか?(汗
age
29 :
所祥寺 : 2001/04/17(火) 14:12 ID:h1PUMxc6
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 やっぱりそうですか・・・・・
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>
となると2ch.dtdとか出てきたりするんですかね。(とか適当なことを言ってみる)
35 :
2chブラウザー作者 : 2001/04/18(水) 16:47 ID:AcK3cmwU
>>32 どーでも良いです。
興味が無いわけではなく、決まったものに従うってことです。
XML準拠でもXML風でも、
>>18や
>>33みたいなのならパーサ
書くのにたいした違いはないと思われます。
属性(="value"みたいなの)使ったり、ファイルが複数に分かれたりすると
面倒かも。
>>33のXML宣言にはもちろん属性が使われてるけど、こんなの
読み飛ばすだけなので。
>>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)>
]>
37 :
agemasuyo:2001/04/22(日) 02:15 ID:eMMjWV.I
age
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>
この辺が改善の余地ありそう、、
あ、インデントミスった・・鬱
しまった、
>>33 のDTDだったのね。失敗。
で、Categoryと Boardは重複しないようにIDを設定してほしいです。
こんな感じで。
<board id="accuse">
これっていつから始まるの?
42 :
壷:2001/05/10(木) 18:24 ID:MCaHTT5Q
43 :
壷:2001/05/10(木) 19:09 ID:35VElRq.
age
これって所祥寺さんが忙しくって進まないの?
さっさと完成させてほしいのでageます。
46 :
所祥寺:2001/06/10(日) 02:21 ID:oUgvggAs
りょ、了解です。明日中になんとかプロトタイプをアップして
検証してもらえるようにします。
仕事でも締め切りが〜
プライベートでも締め切りが〜
ああ楽しい、ああ楽しい〜
それでも作者さん達がヴァージョンアップしてくれないと意味ないですよね
かちゅ〜しゃはいつになったら・・・
所祥寺さん頑張ってください
48 :
所祥寺:2001/06/10(日) 02:34 ID:oUgvggAs
頑張ります。
今度はちゃんと告知しないと
緊急とはいえやはり影響出まくりでしたからね。
というわけでダイエットはもうしばらくお待ちください>夜勤さん
49 :
夜勤 ★:2001/06/10(日) 02:37 ID:???
はい、わかりました。
50 :
所祥寺:2001/06/10(日) 03:24 ID:oUgvggAs
そして
>>27を熟読中
こんなことで間に合うのか>俺(汗
>>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)> <!-- コメント -->
記述方法が正しいかどうかが判らない・・・・
今日中のアップは厳しいかも。
#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が混在して任意数って意味になります?
サブカテゴリってなんだかよくわからないんですけど
必ず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.
コピペしたら直し間違えた。
<!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によって分類しても、リンク漏れが起きないということになります。
意味が違うわけですね。それならそのままで構わないと思われ
66 :
所祥寺:2001/06/10(日) 13:51 ID:oUgvggAs
subcatは板を分類するため
attrは特定の条件の板を抽出するため
に用意しようということですね。
やっぱり、固定したほうがいいかな?
他にもう少し上手い方法がないか考えて見ます。
ところでDTDさえ出来てしまえばあとはデータを流し込むだけなんですね。
ほとんどDTDの記述がメインで後は作業になる・・・・
67 :
所祥寺:2001/06/10(日) 13:53 ID:oUgvggAs
>>65 はい。でも、もう少し考えてみます。
なにせXMLにふれてまだ12時間程度なので勘所が(汗
とてもとても助かります。ほんとうにありがとう。
固定でいいと思います。必ずどれかのサブカテゴリに分類されるなら
? も必要ないですね。
69 :
所祥寺:2001/06/10(日) 13:56 ID:oUgvggAs
ちなみに今考えているのはsubcatが増えた場合のことです。
DTDが書き換わって、<borad>の中身が変化するようなことっていうのは
許容範囲なんだろうかと・・・・。
もしそういった変更が許容されるなら(実際は空だとしても)最初は3つ程度にしておいて
必要になってから追加すれば済むのですが・・・
あ、サブカテゴリの追加もありうるわけですか。
では
<!ELEMENT board (b_name,url,subcat*,attr)> <!-- 板の実体 -->
<!ELEMENT subcat (sc_name,sc_value)> <!-- 板のサブカテゴリ -->
<!ELEMENT sc_name (#PCDATA)> <!-- サブカテゴリ名 -->
<!ELEMENT sc_value (#PCDATA)> <!-- サブカテゴリの値 -->
こんなんでどうですか?
というかattrと区別する必要がないような…。必須かどうかは運用で
カバーすればいいわけですし。
やっぱり別のほうがいいかな。
attrは重複や欠損もありうるわけですから
<!ELEMENT board (b_name,url,subcat*,attr*)> <!-- 板の実体 -->
のほうがいいかも。
72 :
所祥寺:2001/06/10(日) 14:07 ID:oUgvggAs
違うのか・・・
要素が変化したらDTDを書き換えなければならなくて
結果新しい要素が出てきても、その用途が判らなければ・・・・
つまりパーサが利用しなければ関係ないのか。
パーサ側がDTDを参照してちゃんと解釈すれば
新しく生まれた要素については、それが自分の解釈する対象でないとわかるわけだ。
とか考えたんですけど・・・・・
attrは中身を;(セミコロン)で割って、複数を並べようかと思ってたんですが
やはり一つ一つタグでくくった方がいいですかね?
汎用の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)> <!-- コメント -->
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 おっと、見落としてました。
ちょっと待ってください。理解するのに時間を・・・
ちなみに
>>70のようにサブカテゴリを定義するとサブカテゴリの追加が
発生したときにも自動的に認識できるようアプリケーションを設計できる
はず…。
sc_nameの値は話題別、用途別、雰囲気別みたいになって
アプリケーションはそれをキーに串刺し検索できる。
サブカテゴリの追加があっても名前と値のペアを追加するだけ。
というのを想定しています。
「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書いてくれた方々
85 :
Dax: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*)> <!-- 板の実体 -->
91 :
所祥寺:2001/06/11(月) 20:08 ID:0Kczj4uQ
>>90 ありがとうございます。
>>87みたいなやりかたはよくないのか・・・・・
>>90の板の人たちに頼んじゃったほうがいいんじゃないのかな、
所祥寺さん自身も忙しそうなんだし。
上げときます
所祥寺さん登場age
定期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 :
: