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