attribute
要素の直截の親要素として用た場合、その属性は必須属性と見倣されます(attribute
要素を element
要素直下に記述した場合と同様)。ただし、複数の同名の属性を記述出来るわけではないので、注意してください。attribute
要素の子孫要素としては用いることが出来ません。grammar
要素の直下には置いてはなりません。oneOrMore
要素をルート要素とすることが出来ます。ただし、そのスキーマは単独では用いることは出来ず、 externalRef
要素の参照先としてのみ利用できます。ref
要素を中身にし、マクロを参照することが出来ます。連続する oneOrMore
要素の中身を、一つの oneOrMore
要素の中身としてまとめることは出来ません。以下に、その例を示します。
<oneOrMore> <ref name="a"/> </oneOrMore> <oneOrMore> <ref name="b"/> </oneOrMore>
<oneOrMore> <ref name="a"/> <ref name="b"/> </oneOrMore>
例1では、「aが1回以上出現した後、bが1回以上出現するパターン (aa…bb…)」であるのに対し、例2では、「aとbが、この順番を保持したまま1回以上出現 (abab…)」となります。
choice
, interleave
各要素の子要素でない場合、定義の出現順位は保持されます。oneOrMore
要素の子要素の中で、choice
, interleave
各要素が存在しない部分は、定義の出現順位は保持されます。