element
要素で指定された要素が、ルート要素となります。element
要素が define
要素の子要素である必要があります。choice
要素を「かます」必要があります。その場合、実際に検証される文書では、スキーマ内で指定されたルート要素のいずれか一つをルート要素にすることが出来ます。start
要素があっても構いません。その場合は、 combine
属性値を choice
とし、選択形式として結合させる必要があります。<?xml version="1.0"?> <grammar xmlns="http://relaxng.org/ns/structure/1.0" ns="http://lena.org/"> <start> <ref name="document"/> </start> <define name="document"> <element name="document"> <empty/> </element> </define> </grammar>
<start> <choice> <element name="doc1"> <text/> </element> <element name="doc2"> <empty/> </element> </choice> </start>
<start> <element name="doc1"> <text/> </element> </start> <start combine="choice"> <element name="doc2"> <empty/> </element> </start>
XML Schema や DTD では、「文書へのスキーマの埋め込み」を前提としているため、スキーマ内でルート要素を指定することは出来ません。