2011年5月6日金曜日

法令データ取得履歴+お気に入り情報をXMLファイルへシリアライズ(2)

前の記事の続きです。

XMLファイル生成(エクスポート)の試験的な実装ということもあり、 まだ読み込み(インポート)部分の実装はしていません。

が、基本的にはxmlpullparserで読み込んでDBに放り込むだけですので近日中には実装します。

まずは、お気に入り情報を含んだ法令データ取得履歴のBackup/Restoreを実現することが第一の目的です。


今回実装した内容(シリアライズされたXMLファイル)についてですが、ローカル検索に利用しているLAW.xmlとほぼ同様のタグを利用していますが次の点で相違点があります。



  1. 改行・インデント無し(ファイルサイズは小さくなるので許容)
  2. root要素に属性が増えている<llxml description="説明ほげふが">
  3. <law></law>要素に属性(お気に入り情報)が付いている。<law fav="1">みたいな
  4. <keyword></keyword>要素は中身がカラです(メモリ節約等の理由からLAW.xmlに対するローカル検索時以外に利用していないためこの情報を保持していないのです)。


 1はXmlSerializerとの関係もあり、また、WebブラウザなどXML構造を適切に表示してくれるツールに放り込めば読めるということもあり、あえてアプリ側で無理して整形するツモリはないです(その気になればXMLファイルを配布するサーバサイドで処理するということも考えられますので)。

もちろんネットワーク経由で取得する際には少しでもサイズが小さい方がWifiではないデータ通信で取得する場合にもお財布に優しい(?)かもしれませんので。


 2については法令リストカタログとしてXMLファイルを読み込んだ時などにどういった用途向けに作られたリストであるのかを端末で表示してユーザに知らせるための説明書きを付け加えるために新設した属性です。

今回の履歴データバックアップの場合には「法令取得履歴データバックアップ」といった内容が入っています。

 3も今回の履歴データバックアップに特化している属性です。お気に入りの法令であることから<law></law>要素に付加するのが良いと(勝手に)判断して入れています(不要ならparseする際に無視することになります)。

 4はそのままなのですが、履歴管理データとして管理していない関係上、空になっています(LAW.xmlで検索しているのでキーワードはそちらを参照しています)。

どうしても必要な場合にはLAW.xmlから引っ張ってきて無理矢理入れることは出来ますが、処理に時間もかかりますので現実的ではないので端折っています。また、六法(法令リスト)カタログの目的を考えるとキーワード要素は無くても差し支えないと考えていますがいかがでしょうか?(検索索引としては使わないですよね?)


■履歴データ保存を行うUIをどこに実装するか■

現在は暫定的に履歴表示リストビューのところでメニューボタンを押すと「アイテム検索」「履歴バックアップ」というメニューを表示し、選択すると非同期タスクで保存処理を実行します。





設定画面の1項目とすることも考えられますが、内容確認する場所としてはやはり履歴表示リストビューであることから今の場所になる可能性が高いです(両方でもいいですが)。

しかし、一方で、リストアする場面を考えてみると空っぽの履歴表示リストビューでリストアメニューを実行するというのも違和感があるような・・・気もしますね。

ご意見がありましたらお気軽にツイートなどいただければと思います。

0 件のコメント:

コメントを投稿