[groonga-dev,00297] Re: selectコマンドのXML形式での出力の際の改行の位置と頻度

Back to archive index

Tasuku SUENAGA a****@razil*****
2009年 11月 30日 (月) 17:13:36 JST


末永です。

たしかに、XMLとしての意味を変えずに改行を行うためには、
ジェームス・クラーク式記法が必要になると考えます。

しかし、現状のDTDではそれほど厳密にタグ間テキストについて
扱う必要がないため、
以下のような形式が人間の読みやすつかつ出力しやすいと考えます。

<?xml version="1.0" encoding="utf-8"?>
<SEGMENTS>
<SEGMENT>
<RESULTPAGE>
<RESULTSET OFFSET="0" LIMIT="10" NHITS="2">
<HIT NO="1">
<FIELD NAME="_id">2</FIELD>
<FIELD NAME="_key">hayamiz</FIELD>
<FIELD NAME="real_name">Yuto Hayamizu</FIELD>
<FIELD NAME="hp">200</FIELD>
</HIT>
<HIT NO="2">
<FIELD NAME="_id">....</FIELD>
</HIT>
</RESULTSET>
</RESULTPAGE>
</SEGMENT>
</SEGMENTS>

つまり、
・テキストが意味を持つ要素については、1行内にまとめる
 (主に<FIELD>について言及)
・それ以外については、開きタグ・閉じタグそれぞれの直後で改行を行う
といった感じですねー。

というわけで、<SEGMENTS><SEGMENT><RESULTPAGE><RESULTSET>あたりにも
改行が入るとうれしいと思います。

Ryo Onodera さんは書きました:
> 小野寺です。
> 
> put linefeed to the xml output.
> http://github.com/groonga/groonga/commit/2dfa561fa68db14260554ec41632b054c80b183d
> 
> 先ほどpushしたこのコミットについてなのですが、改行の入れ方に関して、確認
> しておきたい点が二つあります。本来なら確認してからpushすべきでした。すい
> ません。
> 
> 現行ではこの様な改行方法になっています。
> 
> <?xml version="1.0" encoding="utf-8" ?>
> <SEGMENTS><SEGMENT><RESULTPAGE><RESULTSET OFFSET="0" LIMIT="10" NHITS="2">
> <HIT NO="1"><FIELD NAME="_id">2</FIELD>
> <FIELD NAME="_key">hayamiz</FIELD>
> <FIELD NAME="real_name">Yuto Hayamizu</FIELD>
> <FIELD NAME="hp">200</FIELD>
> </HIT>
> ....
> </RESULTSET></RESULTPAGE></SEGMENT></SEGMENTS>
> 
> 一つ目は、改行をタグの中に挿入するというのは、以下のような改行方法という
> ことで正しいですか?
> 
> <?xml version="1.0" encoding="utf-8"?><SEGMENTS
>> <SEGMENT><RESULTPAGE><RESULTSET OFFSET="0" LIMIT="10" NHITS="2"
>> <HIT NO="1"
>> <FIELD NAME="_id">2</FIELD
>> <FIELD NAME="_key">hayamiz</FIELD
>> <FIELD NAME="real_name">Yuto Hayamizu</FIELD
>> <FIELD NAME="hp">200</FIELD
>> </HIT
>> <HIT NO="2"
>> <FIELD NAME="_id">....</FIELD
>> </HIT
>> </RESULTSET></RESULTPAGE></SEGMENT></SEGMENTS>
> 
> この改行方法は下のURLの情報を参考にして、記載してあったコマンドの出力結
> 果に手を加えています。
> 
> ジェームス・クラーク式記法あれこれ - traih.log
> http://d.hatena.ne.jp/traih/20060715/1152891839
> 
> 利用したコマンド
> $ cat | ruby -rrexml/document -e 'REXML::Document.new(STDIN).write(STDOUT, 0, true)'
> 
> 二つ目は、現在はFIELDエレメントごとに改行を入れるようにしていますが、改
> 行の量を減らし、HITエレメントごとに改行を入れるだけにして、改行の頻度を
> 下げた方がいいですか?あるいは、このままでも問題ありませんか?
---
tasuku <a****@razil*****>




groonga-dev メーリングリストの案内
Back to archive index