Baldanders.info

パブコメジェネレータ・リポジトリ

前回紹介したパブコメジェネレータは HTML 内部にパブリックコメント・リポジトリを持っているのだが, これを XML 形式に外出しにすることを考えてみる。

パブコメジェネレータ・リポジトリというのは 「 MIAUパブリックコメント促進プロジェクト開発Wiki」 で作成されているパブコメジェネレータ用のデータで以下の形式になっている。

  • 質問
    • YESの場合のページ番号と項目名
    • YESの場合のコメント
    • NOの場合のページ番号と項目名
    • NOの場合のコメント

これらの情報はパブコメジェネレータの HTML 内部に書かれている。 まぁ, 使い捨てのツールであれば今のままでも全然構わないわけであるが, これから別の案件でパブリックコメントを作成することがあれば, 今のパブコメジェネレータをできるだけ流用したいと考えるかもしれない。 このときユーザインタフェースとデータが分離できれば応用しやすい。 また, パブコメジェネレータ・リポジトリのようなユニークなデータは knowledge base として他にも使い道があるかもしれない。

パブコメジェネレータ・リポジトリの形式として XML を選んだことにたいした意味はないが, 他のフォーマットへの変換のしやすさや Web との親和性を考えて今回は XML を選んでみた。 実装例はこちらをどうぞ。 トップノードは repository で, repository の直下に以下の3つの要素がある。

  • revision
  • target
  • questions

revision にはリビジョン情報を格納する。 バージョン管理を行う場合に必要になるかもしれない。 target には案件情報とパブコメの送付先などの情報を格納する。 questions はリポジトリの本体である。

questions の直下には1つ以上の question がある。 question の直下には更に以下の2つの要素がある。

  • title
  • comments

title には質問の内容を格納する。 comments は質問に対するコメントで, 直下には1つ以上の comment がある。 comment には以下の4つの要素がある。

  • attribution
  • item
  • page
  • content

attribution には質問に対する回答を格納する。 YES または NO が入ることを期待しているが, 他の値を入れて拡張することもできる。 item または page はコメントに対応する項目とページ番号を格納する。 content はコメント内容を格納する。

思いつきで作ったのだが多分破綻していないと思う。 ついでにリポジトリの内容を表示するデモ画面も作ってみた。 XML の読み込みには JKL.ParseXML を使っている。 結構やっつけのコードなので良い子は真似しないように。

この記事が今後の議論の参考になれば幸いです。

(追記)

XML を読み込むタイプのパブコメジェネレータも試しに作ってみました。