Cosminexus V9 アプリケーションサーバ Cosminexus XML Processor ユーザーズガイド

[目次][用語][索引][前へ][次へ]

付録A.4 スキーマ検証の動作の差異

スキーマ検証の動作の差異を次の表に示します。

表A-4 スキーマ検証の動作の差異

項番 条件 XML Processorの動作
バージョン06-00の場合 バージョン07-00以降の場合
1 スキーマ文書にxsd:key要素が存在し,かつ,インスタンス文書にキーに該当するテキストが存在しない場合 エラーにならないことがあります。 エラーになります。
2 スキーマ文書にxsd:key要素とxsd:keyref要素の組み合わせを指定していて,xsd:key要素とxsd:keyref要素の双方のfield要素の順序と型が一致していない場合 エラーにならないことがあります。 エラーになります。
3 xsd:field要素のxpath属性がchild軸を含むXPath式の場合 エラーになりません。 child軸が指定できない旨のエラーになります。
4 xsd:selector要素のxpath属性が「| ns1:element」のように不当な | 演算子を含むXPath式の場合 エラーにならないか,または,XML文書の妥当性検証のエラーになります。 スキーマ文書のエラーになります。
5 xsd:redefine要素またはxsd:import要素のschemaLocation属性に空文字列を指定した場合 エラーになりません。 エラーになります。
6 xsd:schema要素のtargetNamespace属性に"http://www.w3.org/2001/XMLSchema-instance"を指定している場合 −(該当しない)
  • 08-00ではKECX06509-Eのエラーを通知します。
  • 08-50以降ではエラーを通知しません。ただし,広域属性が存在するときには,KECX06198-Eのエラーを通知します。
7 次のすべての条件に該当する場合
  1. XMLスキーマ文書でanyURI型またはその派生型を使用している
  2. 1.の定義に対応するデータがRFC2396およびRFC2732の規定に反する文字を含んでいる
KECX06036-Eのエラーを通知します。 データ型宣言に適合した値として処理されます。
8 次のすべての条件に該当する場合
  1. XMLスキーマ文書でtime型またはdateTime型を使用している
  2. 1.の定義に対応するデータに,秒の値として「60」が指定されている
データ型宣言に適合した値として処理されます。 データ型宣言の範囲外の値と見なされて,KECX06036-Eエラーを通知します。
9 次のすべての条件に該当する場合
  1. XMLスキーマ文書でtime型またはdateTime型を使用している
  2. 1.の定義に対応するデータに,タイムゾーンオフセットとして-14:01〜-14:59または+14:01〜+14:59の範囲の値が指定されている
データ型宣言に適合した値として処理されます。 データ型宣言の範囲外の値と見なされて,KECX06036-Eエラーを通知します。
10 lengthファセットが指定された単純型を基底として,制限による派生でminLengthまたはmaxLengthが指定されている場合 エラーになります。 エラーになりません。
11 次のすべての条件に該当する場合
  1. 検証パース時にエラーハンドラを設定している
  2. 検証パース中に1.のエラーハンドラのerrorまたはfatalErrorメソッドが呼ばれる
  3. 2.のメソッドの中で例外をスローしていない
06-00と07-00以降で通知される妥当性検証エラーが異なる場合があります。
12 次の両方の条件に該当する場合
  1. xsd:unique要素のセレクタに指定した要素の型がxsd:anyTypeである
  2. インスタンス文書でxsi:typeグローバル属性を使用して1.の要素の型を単純型に変更する
エラーになります。 エラーになりません。
13 xsd:anyURI型のインスタンスデータ中に空白がある場合 エラーになります。 エラーになりません。
14 xsd:simpleType要素のfinal属性が空文字列または空白だけの場合 エラーになります。 エラーになりません。
15 xsd:notation要素のpublic属性がない場合 KECX06230-Eのエラーを通知します。 KECX06256-Eのエラーを通知します。
16 xsd:pattern要素のvalue属性の正規表現で「[-」や「-]」を指定した場合 エラーになります。 エラーになりません。
17 次のすべての条件に該当する場合
  1. 要素に対して,xsd:uniqueで一意性を指定する
  2. 1.の要素の型が単純型でない
  3. インスタンス文書内でxsi:typeグローバル属性で,1.の要素の型を単純型に置き換える
  4. 検証パースを実行する
エラーになります。 エラーになりません。
18 xsd:selector要素に不当なxpath属性を指定した場合 KECX06243-Eのエラーを通知します。 KECX06241-Eのエラーを通知します。
19 xsd:key要素のフィールド(xsd:field要素)のxpath属性に,「要素名/.」というパス式を指定した場合 エラーになります。 エラーになりません。
20 xsd:key要素のセレクタ(xsd:selector要素)に型が異なる複数の要素を指定し,インスタンス文書でキーとなる要素に同じ値を与えた場合 エラーになります。 エラーになりません。
21 xsd:anyURI型の要素に対して長いURI文字列(63バイト以上)を指定した場合 エラーになります。 エラーになりません。
22 xsd:simpleType要素のfinal属性に,"list restriction union"のように空白で区切ったリストを指定した場合 エラーになります。 エラーになりません。
23 xsd:anyURIを基底として制限による派生を行った要素に2バイト文字を含むURIを入れた場合 エラーになります。 エラーになりません。
24 xsd:timeを基底型として制限による派生を行った要素に,秒の値を小数点以下10桁以上で与えた場合(例:13:20:15.2147483648) エラーになります。 エラーになりません。
25 xsd:IDREFを基底として制限による派生でxsd:lengthを2以上に固定した場合 エラーになります。 エラーになりません。
26 次の条件に該当するXML文書に対して検証パースを行う場合
  • 入力XML文書中のxsi:schemaLocation属性またはxsi:noNamespaceSchemaLocation属性に存在しない,または読み込めないスキーマ文書が指定されている
ワーニングになりません。 KECX06069-Eのワーニングを通知します。
27 次のどちらかの条件に該当するスキーマ文書を使って,XML文書の検証パースを行う場合
  • xs:import,xs:includeのschemaLocation属性に存在しない,または読み込めないスキーマ文書が指定されている
  • xs:redefine要素が次の(i)(ii)のどちらかの条件に該当し,schemaLocation属性に存在しない,または読み込めないスキーマ文書が指定されている
    (i) xs:redefine要素の子要素がxs:annotation要素だけである
    (ii)xs:redefine要素に子要素が存在しない
エラーになりません。 KECX06069-Eのワーニングを通知します。
28 次の個所のどれかに不正な構文のURIを指定した場合
  • インスタンス文書のxsi:schemaLocation属性またはxsi:noNamespaceSchemaLocation属性
  • include要素,import要素またはredefine要素のschemaLocation属性
06-00と07-00以降とでは,URI指定個所と不正な構文のURIの組み合わせによって動作が異なります。例えば,通知するエラーが異なったり,06-00では発生しなかった例外が07-00以降で発生したりする場合があります。
29 次の個所のどれかに不正な構文のURIを指定した場合
  • anyAttribute要素のnamespace属性
  • any要素のnamespace属性
  • notation要素のsystem属性
  • appinfo要素のsource属性
  • documentation要素のsource属性
  • import要素のnamespace属性
KECX06229-Eのエラーを通知します。 エラーになりません。
30 次の個所のどちらかに不正な構文のURIを指定した場合
  • schema要素のtargetNamespace属性
  • redefine要素のschemaLocation属性
KECX06229-Eのエラーを通知します。 KECX06039-EまたはKECX06069-Eのエラーを通知します。

メッセージの詳細については,マニュアル「アプリケーションサーバ メッセージ(構築/運用/開発用)」の「11. KECX(XML Processorが出力するメッセージ)」を参照してください。