anyName
要素として明示します。name
属性を持たない element
, attribute
各要素の子要素として用いられます。逆に言えば、 anyName
要素を子要素に持つ element
/ attribute
各要素には、 name
属性を附属させてはいけません。anyName
要素を空要素にした場合、任意の要素もしくは属性の存在を許すことになります。except
要素を子要素に持つことが出来ます。その場合、 except
要素内に記述された名前を持つ要素や属性は対象外となります。自己紹介
要素において、いかなる要素を複数個勝手に加えて良い(中身はテキスト)一方で、氏名
要素を常に必須要素として記述させたい場合は、以下のようにスキーマを作れるでしょう。
<element name="自己紹介"> <interleave> <!-- 氏名要素を含め、要素の並び方は順位不同とする。 --> <zeroOrMore> <element> <!-- 氏名要素以外の任意の要素 --> <anyName> <except> <name>氏名</name> </except> </anyName> <text/> </element> </zeroOrMore> <element name="氏名"><text/></element> </interleave> </element>
<自己紹介> <氏名>鈴木栄作</氏名> <!-- 氏名は必須要素 --> <職業>総理大臣</職業> <趣味>スキー、テニス</趣味> </自己紹介>
<自己紹介> <!-- 氏名要素が欠落 --> <好物>鰯の丸干し</好物> <特技>踊り</特技> </自己紹介>