param 要素
データ型に附加情報を与える要素
- 特定のデータ型に関し、何らかの制限や情報を附加させるための要素です。
- name 属性 が制限を課す条件名、中身がその条件の値を、それぞれ示します。name 属性 の属性値と param要素 の中身は、データ型ライブラリの定義に依存します(RELAX-NG 内部では、特に定義されていません)。
- 常に data要素 の直下に置かなければなりません。
属性
子ノード
- 子にテキストノードを一つ持ち条件のパラメタを示します。とりうる値は、データ型ライブラリの定義に依存します(RELAX-NG 内部では、特に定義されていません)。
- 中身は常にテキストです。空の param要素 は望ましくないと思われます。
使用例
例 1: 「プロフィール」の例
data要素と同じ例。 プロフィールには氏名, 年齢のみが入れられるとします。
制限すべき事項と具体的制限
- 氏名は通常の文字列で、文字数は1 〜 10 文字とします。
- 年齢は整数値で、範囲は0-150とします。
実際の記述例
- スキーマ例
-
<?xml version="1.0"?> <element name="プロフィール" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> <element name="氏名"> <data type="string"> <param name="minLength">1</param> <param name="maxLength">10</param> </data> </element> <element name="年齢"> <data type="integer"> <param name="minInclusive">0</param> <param name="maxExclusive">150</param> </data> </element> </element>
- 妥当な XML 文書の一例
-
<?xml version="1.0"?> <プロフィール> <氏名>真田ゆり子</氏名> <!-- 中身は5文字 --> <年齢>18</年齢> <!-- 数値は1-150の範囲内 --> </プロフィール>
- 妥当でない XML 文書の一例
-
<?xml version="1.0"?> <プロフィール> <氏名>寿限無寿限無海砂利水魚</氏名> <!-- 11文字! --> <年齢>250</年齢> <!-- 150より上! --> </プロフィール>
参考文献
- James Clark and Makoto Murata, ISO/IEC FDIS 19757-2 Document Schema Definition Language (DSDL) -- Part 2: Regular-grammar-based validation -- RELAX NG
- 古林 寛, 「param要素 @ ぽかぽか RELAX NG 工房」