ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

ODF (OpenDocument Format)コミュのRelax NG スキーマ

  • mixiチェック
  • このエントリーをはてなブックマークに追加
ODFスキーマには RelaxNG が採用されていますが、僕もちょこっとかじっただけでまだまだ理解は薄いと思います。そこで、今ODFのスキーマ読んでて目にしたのですが,以下のような文

<define name="style-chart-properties-attlist" combine="interleave">
  <optional>
    <attribute name="chart:scale-text">
      <ref name="boolean"/>
    </attribute>
  </optional>
</define>
<define name="style-chart-properties-attlist" combine="interleave">
  <optional>
    <attribute name="chart:three-dimensional">
      <ref name="boolean"/>
    </attribute>
  </optional>
</define>
<define name="style-chart-properties-attlist" combine="interleave">
  <optional>
    <attribute name="chart:deep">
      <ref name="boolean"/>
    </attribute>
  </optional>
</define>
...
つまり、定義名が同じstyle-chart-properties-attlistである<define>要素を延々と連ねることって可能なのでしょうか?

コメント(2)

これは悪いコーディングスタイルです。良い子のみなさんは決して真似をしてはいけません。

combine属性を使って、複数のdeifneを結合するのは、スキーマのカスタマイズのためだけ
にあります。つまり、スキーマファイルAをスキーマファイルBからincludeするとき、Aにあるdefineを
ちょっと変更するため、たとえば選択肢を追加する(combine = "choice")か属性を追加する
(combine="interleave")ために使います。つまり、別ファイルに分かれたいくつかのdefineを
結合するためだけに使います。

ODFはcombineを悪用したため、とても読みにくいスキーマになっています。実際に読んでみる
と、定義がどこにあるのかさっぱり分からずにとても苦労します。ODFのスキーマには、
ほかにもいろいろ深刻な問題点があります(naming conventionがない、modularityがないなど)。

あちゃー。ODFのスキーマってこういう書き方多いですよ。これは後で直すべきなんだろうなぁ...。がく〜(落胆した顔)

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

ODF (OpenDocument Format) 更新情報

ODF (OpenDocument Format)のメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング