element
要素 (及び element
要素を子孫に持つ choice
要素など) を入れ子にすることで、要素の包含関係を明示することが出来ます。element
要素をスキーマのルート要素に出来ます。その場合、指定された要素が文書インスタンス内のルート要素となります。element
要素には、様々な要素を入れることが出来ます。通常は、 choice
, zeroOrMore
などのパターン制馭要素と共に用いることが多いでしょう。ref
要素を包含させることで、マクロを参照することも出来ます。name
属性で指定します。name
属性の中身は Qualified name なので、名前空間を考慮する必要があります。name
属性を記述しない場合は、name
要素で指定します。anyName
要素を子要素にすることで、すべての要素を許容することが出来ます。その際、 except
要素を使うことで、適用すべきでない要素名を除去することも可能です。ns
属性で、指定する要素及びその子孫要素のデフォルトの名前空間 URI を指定できます。grammar
要素と同様、 xmlns:xxxx
属性を使用することもできます。element
要素をルート要素とする場合は、スキーマ自体の名前空間 (http://relaxng.org/ns/structure/1.0
) を宣言しなければなりません。element
要素 (あるいは、 element
要素を子孫要素に持つ choice
要素など) を並べた場合、文書インスタンス中では、element
要素の出現順序通りに要素が出現していなければなりません。element
要素を複数異なる場所に設置することが可能です。これにより、同じ要素の入れ子を定義したり、要素の出現する場所によって異なる中身や属性を定義したりすることが出来ます。<?xml version="1.0"?> <element name="p" ns="http:lena.com" xmlns="http://relaxng.org/ns/structure/1.0"> <text/> </element>
<element name="p"> <element name="a1"><text/></element> <element name="a2"><text/></element> </element>
<element> <anyName> <except><name>book</name></except> </anyName> <element name="book"><text/></element> </element>