サーバー上の XML スキーマ コレクションの要件と制限
XSD (XML Schema Definition Language) の検証には、xml
データ型を使用する SQL 列に関して制限事項がいくつかあります。 次の表は、このような制限事項に関する詳細と、 SQL Serverで機能するように XSD スキーマを変更するためのガイドラインを示しています。 このセクションのトピックでは、具体的な制限事項の詳細とその対処方法について説明します。
Item | 制限事項 |
---|---|
minOccurs と maxOccurs | minOccurs 属性と maxOccurs 属性の値は、4 バイトの整数に収める必要があります。 これに違反するスキーマはサーバーで拒否されます。 |
<xsd:choice> | SQL Serverは、minOccurs 属性値が 0 で定義されていない限り、子のない xsd:choice> パーティクルを持つ<スキーマを拒否します。 |
<xsd:include> | 現在、 SQL Server ではこの要素をサポートしません。 この要素を含む XML スキーマはサーバーによって拒否されます。 ソリューションとして、xsd:include> ディレクティブを含む< XML スキーマを前処理して、含まれているスキーマの内容を 1 つのスキーマにコピーしてマージし、サーバーにアップロードできます。 詳細については、「 含まれているスキーマをマージするためのスキーマの前処理」を参照してください。 |
<xsd:key>、<xsd:keyref>、xsd<:unique> | 現在、 SQL Server では、一意性の強制や、キーおよびキー参照の確立を行うための、これらの XSD ベースの制約はサポートしません。 これらの要素を含む XML スキーマは登録できません。 |
<xsd:redefine> | SQL Server ではこの要素をサポートしません。 スキーマを更新する別の方法については、「xsd:redefine> 要素」を参照してください<。 |
<xsd:simpleType> 値 | SQL Server は、 および xs:dateTime 以外xs:time の 2 番目のコンポーネントを持つ単純型の場合はミリ秒の精度、および の場合は 100 ナノ秒の精度xs:time xs:dateTime のみをサポートします。 SQL Server は、認識されるすべての XSD 単純型の列挙に制限を適用します。SQL Serverでは、xsd:simpleType> 宣言での "NaN" 値の<使用はサポートされていません。 詳細については、「xsd:simpleType> 宣言の<値」を参照してください。 |
xsi:schemaLocation と xsi:noNamespaceSchemaLocation | これらの属性が、データ型の列または変数xml に挿入された XML インスタンス データに存在する場合、SQL Serverは無視されます。 |
xs:QName | SQL Server では、XML スキーマ制約要素を使用している xs:QName から派生した型はサポートしません。 SQL Server では、メンバー要素に xs:QName を指定した共用体型はサポートしません。 詳細については、「 The xs:QName Type」を参照してください。 |
既存の置換グループへのメンバーの追加 | XML スキーマ コレクション内の既存の置換グループにメンバーを追加することはできません。 XML スキーマの置換グループは先頭要素のみで使用するように制限されているので、同じ CREATE XML SCHEMA COLLECTION ステートメントまたは ALTER XML SCHEMA COLLECTION ステートメントで置換グループのすべてのメンバーを定義する必要があります。 |
正規の形式とパターン制限 | 値の正規表現は、その値の型のパターン制限に従う必要があります。 詳細については、「 Canonical Forms and Pattern Restrictions」を参照してください。 |
列挙ファセット | SQL Server では、ファセットに違反するパターン ファセットや列挙を含む型を使用した XML スキーマはサポートしません。 |
ファセット長 | length、minLength、maxLength ファセットは型としてlong 格納されます。 この型は 32 ビット型です。 したがって、これらの値に許容される値の範囲は 2^31 です。 |
ID 属性 | XML スキーマ コンポーネントは、それぞれ ID 属性を 1 つ含むことができます。 SQL Serverは、ID 型の xsd:attribute> 宣言に<一意性を適用しますが、これらの値は格納しません。 一意性のスコープは、CREATE XML SCHEMA COLLECTION ステートメントまたは ALTER XML SCHEMA COLLECTION ステートメントで適用します。 |
ID 型 | SQL Server では、 xs:ID型、 xs:IDREF型、または xs:IDREFS型の要素はサポートしません。 スキーマでは、この型の要素や、この型の制限または拡張によって派生した要素を宣言できません。 |
ローカル名前空間 | xsd:any> 要素には、ローカル名前空間を明示的に指定する<必要があります。 SQL Server では、名前空間属性の値に空文字列 ("") を使用するスキーマを拒否します。 代わりに、 SQL Server では "##local" を明示的に使用して、修飾されない要素や属性をワイルドカード文字によるインスタンスとして示す必要があります。 |
混合型と単純コンテンツ | SQL Server では、混合型を単純コンテンツに制限することはできません。 詳細については、「 Mixed Type and Simple Content」を参照してください。 |
NOTATION 型 | SQL Server では、NOTATION 型をサポートしません。 |
メモリ不足状態 | 大きな XML スキーマ コレクションの操作では、メモリが不足することがあります。 この問題の解決方法については、「 大きな XML スキーマ コレクションとメモリ不足状態」を参照してください。 |
繰り返される値 | SQL Server では、block 属性または final 属性で "restriction restriction" や "extension extension" のように値を繰り返すスキーマが拒否されます。 |
スキーマ コンポーネントの識別子 | SQL Server では、スキーマ コンポーネントの識別子の最大長を Unicode 文字 1,000 文字に制限します。 また、識別子に補助文字のペアを使用することはできません。 |
タイム ゾーン情報 | SQL Server 2008 以降のバージョンでは、タイム ゾーン情報は、XML スキーマ検証の xs:date 、xs:time 、および の値に対してxs:dateTime 完全にサポートされています。 SQL Server 2005 下位互換性モードでは、タイム ゾーン情報は常に協定世界時 (グリニッジ標準時) に正規化されます。 dateTime 型の要素の場合は、サーバー側でオフセット値 ("-05:00") を使用して対応する GMT 時を返すことによって、指定された時間を GMT に変換します。 |
共用体型 | SQL Server では、共用体型からの制限はサポートしません。 |
可変精度の 10 進数 | SQL Server では、有効桁数が可変の 10 進数はサポートしません。 xs:decimal 型は任意の有効桁数の 10 進数を表します。 XML プロセッサに準拠するには、最低でも totalDigits=18 以上の 10 進数をサポートする必要があります。 SQL Server では、 totalDigits=38, をサポートしますが、小数部は 10 桁に制限されます。 インスタンス化されたすべての xs:decimal 値は、サーバーでは SQL 型数値 (38, 10) を使用して内部的に表現されます。 |
このセクションの内容
トピック | 説明 |
---|---|
正規の形式とパターン制限 | 正規の形式とパターン制限について説明します。 |
ワイルドカード コンポーネントと内容検証 | XML スキーマ コレクションでのワイルドカード文字、lax 検証、および anyType 要素の使用に関する制限について説明します。 |
<xsd:redefine> 要素 | xsd:redefine> 要素の使用に関する<制限事項について説明し、回避策について説明します。 |
xs:QName 型 | xs:QName 型に関する制限について説明します。 |
<xsd:simpleType> 宣言の値 | xsd:simpleType> 宣言に<適用される制限について説明します。 |
列挙ファセット | 列挙ファセットに関する制限について説明します。 |
混合型と単純コンテンツ | 混合型を単純コンテンツに制限する場合の制限について説明します。 |
大きな XML スキーマ コレクションとメモリ不足状態 | 大きなスキーマ コレクションで発生することがあるメモリ不足の解決方法について説明します。 |
非決定的コンテンツ モデル | 非決定的コンテンツ モデルに関する制限について説明します。 |
参照
XML データ (SQL Server)
型指定された XML と型指定されていない XML の比較
XML スキーマ コレクションに対する権限の許可
一意のパーティクル属性の制約
XML スキーマ コレクション (SQL Server)