血統の森+はてな

旧はてなダイアリーの自動インポートによるアーカイブです。

XML問題あれこれ

CSVとXMLの標準白駒食場
アンカーくらいはてな記法に頼らず書いてみるか。

要素とするべきか、属性値を取るべきか

>分かりやすいけど、ちょっと構造が煩雑かなあ

確かに構造が複雑、というのはあると思う。ただ、素直なマークアップとしては昨日書いた感じになるかなと。地のテキストに対して、タグで囲って意味づけをするというのはマークアップそのものであると。
ただ、arikuiさんがリンク先で書いてるみたいに、要素ではなく属性値を取ってしまうのはかなりアリ。どっちをとっても、機械からのデータの見え方ってのは大して変わらないのかもしれないし、属性にしてしまった方が単純に見やすいのもある。そこをどうするべきなのか、という問題があるか。

入れ子、もしくは階層構造について

私の書いたものは、

  • ルート要素:血統は、馬要素と両親要素を必ず1つずつ持たなければならない(must)。(自分と両親の情報)
  • 要素:両親は、馬要素を必ず2つ持たなければならない(must)。(父親と母親)
  • 要素:両親は、両親要素を2つ持つことが出来る(may)(父方の祖父母と母方の祖父母の情報)

と、DTDなりで縛りを入れれると思う。

arikuiさんの書いたものは、

  • ルート要素:血統は、馬要素を必ず1つずつ持たなければならない(must)。(自分の情報)
  • 要素:馬は、名前要素を必ず1つ持たなければならない(must)。(自分の名前)
  • 要素:馬は、両親要素を2つ持つことが出来る(may)(自分の両親の情報)

という感じか。

ダーレーアラビアンなんかの例外を除いて、有限の代だけ血統がすべてわかってる馬を記述する場合、任意の代のある馬がいれば必ずその両親を記述しなければならない、とは書けない(5代血統表なのに、5代前のある馬の両親は書けない)けれども、任意の代のある馬に両親がいると宣言すれば、両親の情報を書かなければならない(5代血統表で、4代前の両親の情報=5代前の馬については書かないといけないが、5代前の馬の両親については書かなくていい)、というのは自然な流れじゃないかなと。そういう意味では私ものの方がすっきりするかな、とか言ってみるテスト。(DTDとかスキーマとか書いたことないけどね…--;)