XML.com: A Data Model for Strongly Typed XML [Dec. 18, 2002]
まだ読んでいない。
というか、全然面白くなかった。
Designing XML Schema Libraries
感想は後ほど。
PersonというcomplexTypeを定義。それを派生させて、RestrictedPerson、ExtendedPersonという二つのcomplexTypeを定義した。ここまでは分かる。しかしそれらの派生型を適用する要素がそれぞれ違う名前になっている(もしくはxsi:type属性を用いて文書インスタンスに直に型を宣言する)。果たしてそんな設計が一般的だろうか。私が想像するケースは例えばこう:
person要素の子要素にはage(年齢)要素と、phone(電話番号)要素がある。age要素の文字列値が15以下の場合には、phone要素の登場が禁止される制限型が適用される。
要するに同じ要素ではあるが、ある条件によって派生型(特にこの場合制限型)が適用されるというケース。