ひさびさに WXS でハマったので、まとめておこうと思う。 WXS (W3C XML Schema) に UPA (Unique Particle Attribution) という制限がある。簡単にいってしまうと曖昧な内容モデルを排除するための規定である。たとえば はこのコンテキストで、ある "a" 要素が出現したときに、どちらの a 要素か決定できないのでこのスキーマは valid でないということだ。上記では曖昧な内容モデルと書いたが、これは SGML 用語である。 XML 1.0 では非決定的内容モデルという。 XML 1.0 でこれは SGML との互換性のために用意されている。また DTD と組み合わせたときに発生する制限であり、整形式の XML 文書には関係がない。WXS では DTD のこれを踏襲して、見方によっては制限を加えて、UPA で非決定的内容モデルを禁止している。