grammar 要素
スキーマのルート要素
- 通常、 スキーマを記述する際のルート要素として用いられます。 start要素, define要素, include要素, ref要素 を用いる際は、常に必須になります。
- 単純なスキーマを記述する際には、 コンテナ もしくは サブコンテナ をルート要素に使えます。ただし、ref要素 などでマクロを参照することが出来なくなるため、複雑なスキーマの記述には不向きです(ただし、externalRef要素 により、外部ファイルを参照することは可能です)。
- XML形式において最上位に配置できる コンテナ は element要素 のみです。 サブコンテナ は配置できません。
属性
xmlns 属性
スキーマ自体の名前空間を指定します。
RELAX NG の名前空間の URI は、http://relaxng.org/ns/structure/1.0 です。
ns 属性
スキーマで定義する要素/属性のデフォルトの名前空間を設定します。これにより、接頭辞無しで名前を使うことが出来ます。
xmlns:xxxx 属性
この形式でも、スキーマで定義する要素/属性の名前空間を設定出来ます( xxxx に、使用する接頭辞名を入れます)。定義する要素/属性に複数の名前空間が存在する際は、複数の xmlns:xxxx 属性 が必要になります。また、ns 属性 との併用も出来ます。
子ノード
- 一つ以上の start要素 を子に持ちます。
使用例
例 1:
<?xml version="1.0"?> <grammar xmlns="http://relaxng.org/ns/structure/1.0" ns="http://lena.org/" xmlns:h="http://batz.org/"> <start> <element name="document"> <ref name="para"/> </element> </start> <define name="para"> <element name="h:para"> <empty/> </element> </define> </grammar>
参考文献
- James Clark and Makoto Murata, ISO/IEC FDIS 19757-2 Document Schema Definition Language (DSDL) -- Part 2: Regular-grammar-based validation -- RELAX NG
- 古林 寛, 「grammar要素 @ ぽかぽか RELAX NG 工房」