サーバー上の XML スキーマ コレクションの管理

xml データ型」で説明したように、SQL Server には、xml データ型を使った XML データのネイティブ ストレージが用意されています。必要に応じて、XML スキーマ コレクションを使って xml 型の変数や列と XSD スキーマを関連付けることができます。XML スキーマ コレクションにはインポートした XML スキーマが格納され、その後このコレクションを次の操作に使用します。

  • XML インスタンスの検証

  • XML データをデータベースに格納するときの型指定

XML スキーマ コレクションは、データベース内のテーブルに似たメタデータ エンティティです。XML スキーマ コレクションは作成、変更、削除できます。CREATE XML SCHEMA COLLECTION (Transact-SQL) ステートメントで指定されたスキーマが、新しく作成される XML スキーマ コレクション オブジェクトに自動的にインポートされます。ALTER XML SCHEMA COLLECTION (Transact-SQL) ステートメントを使用して、追加のスキーマやスキーマ コンポーネントをデータベース内の既存のコレクション オブジェクトにインポートできます。

型指定された XML と型指定されていない XML」で説明したように、スキーマが関連付けられる列や変数に格納されている XML を、型指定された XML と呼びます。これは、インスタンス データに必要なデータ型情報をスキーマが提供しているためです。SQL Server ではこの型情報を使用して、データ ストレージを最適化します。

クエリ処理エンジンでも、型の確認、クエリの最適化、およびデータの変更にスキーマが使用されます。

また SQL Server では、型指定された xml の場合、XML インスタンスを検証するために関連付けられた XML スキーマ コレクションが使用されます。XML インスタンスがスキーマを使ってコンパイルされると、そのデータベースはインスタンスを型情報と共にシステムに格納できます。それ以外の場合は、インスタンスを拒否します。

SQL Server には、データベース内のスキーマを管理するためのさまざまな DDL ステートメントが用意されています。ただし、XML スキーマ コレクションを使用する前にインポートする必要があります。詳細については、「データベースで XML スキーマ コレクションを管理するための DDL」を参照してください。

XML スキーマ コレクションをデータベースにインポートするには、権限が必要です。詳細については、「XML スキーマ コレクションに対する権限」を参照してください。

固有の関数 XML_SCHEMA_NAMESPACE を使用して、データベースに格納されているスキーマ コレクションを取得できます。詳細については、「格納されている XML スキーマ コレクションの表示」を参照してください。

また、XML スキーマ コレクションは、XML 変数、パラメータ、および列の型指定にも使用できます。