Jintrick.netagenda2004年06月アーカイブ → 2004年06月16日

Compact Syntax はイイものだ

例えば次のようなRelax NG(XML構文)文書の断片があったとして意味が分かるだろうか:

<define name="head">
  <element name="head">
    <ref name="head.attlist"></ref>
    <ref name="head.content"></ref>
  </element>
</define>

<define name="head.content">
  <ref name="title"></ref>
</define>

<define name="head.content" combine="interleave">
  <zeroOrMore>
    <ref name="link"></ref>
  </zeroOrMore>
</define>

いや、今分かったとして半年後に分かるだろうか。combine="interleave" の意味が。

一方、Compact Syntaxで書かれていたなら、半年後、一年後にも理解できる自信がある。

head = element head { head.attlist, head.content }

head.content = title

head.content &= link*

スキーマ文書など滅多に書かないので、Trangでひと手間かかったとしてもCompact Syntaxを使う利点は十分だなと、XHTML1.0のXML構文のスキーマをCompact Syntaxに書き直す練習をしていて確信した。validatorがあれば尚良い。個人的にはlibxml2が実装してくれたらとても嬉しい。


webmaster@jintrick.net
公開: 2004年06月16日
カテゴリ: スキーマ