このステップでは新たな変形はせず、幾つかの制約を確認します。
名前クラス内の <except> 要素
<anyName> 要素下の <except> 要素は、子孫要素として <anyName> 要素を持ってはいけません(どんな名前にもマッチしなくなります*1)。 同様に、<nsName> 要素下の <except> 要素は、子孫要素として <nsName>, <anyName> 要素を持ってはいけません。
- 対象ノード*2
- //rng:anyName/rng:except//rng:anyName
//rng:nsName/rng:except//*[self::rng:anyName or self::rng:nsName] - 操作
- 例外を投げる。
xmlns 属性
<attribute> 要素の第1要素もしくは第1要素の子孫要素に現れる &name> 要素で、@ns 属性が空文字列のものの属性値は "xmlns" であってはいけません。 これは属性の名前が "xmlns" になる可能性を排除します。
- 対象ノード
- 略
- 操作
- 例外を投げる。
http://www.w3.org/2000/xmlns 名前空間に属する属性
<attribute> 要素の第1要素もしくは第1要素の子孫要素に現れる <name>, <nsName> 要素は、@ns 属性の値が "http://www.w3.rog/2000/xmlns" であってはいけません。 これは属性の属する名前空間が "http://www.w3.rog/2000/xmlns" になる可能性を排除します。
- 対象ノード
- 略
- 操作
- 例外を投げる。
データ型
<data>, <value> 要素が正しいデータ型を指定していなければなりません。 特に @type 属性で指定されるデータ型が、@datatypeLibrary 属性で指定されるデータライブラリに含まれている必要があります。 また、<data> 要素に関しては、パラメータのリストが、そのデータ型に許されたものでなければなりません。
- 対象ノード
- 略
- 操作
- 例外を投げる。