XML データ変更言語 (XML DML)

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

XML DML (XML データ変更言語) は、XQuery 言語の拡張言語です。 W3C で定義されているように、XQuery 言語には、データ操作 (DML) の部分がありません。 このトピックで紹介する XML DML および XQuery 言語には、xml データ型に対して使用できる完全な機能のクエリおよびデータ変更言語が提供されます。

XML DML では、XQuery に次のキーワードが追加されました。これらのキーワードでは、大文字と小文字が区別されます。

  • insert

  • delete

  • replace value of

XML データ型と列 (SQL Server)」の説明に従って XML データ型の変数と列を作成し、それらに XML ドキュメントやフラグメントを割り当てることができます。 このような XML インスタンスを変更または更新するには、次の操作を実行します。

一部の属性では、挿入や削除、値の変更ができないので注意してください。 次に例を示します。

  • xml の型指定の有無にかかわらず、属性には xmlnsxmlns:*、および xml:base を使用します。

  • 型指定された xml の場合のみ、属性に xsi:nil、および xsi:type を使用できます。

その他の制限には、次のようなものがあります。

  • xml の型指定の有無にかかわらず、xml:base 属性を挿入すると、エラーになります。

  • 型指定された xml の場合、xsi:nil 属性を削除または変更すると、エラーになります。 型指定されていない xml の場合は、この属性を削除したり、変更したりすることができます。

  • 型指定された xml の場合、xs:type 属性の値を変更すると、エラーになります。 型指定されていない xml の場合は、この属性の値を変更できます。

型指定された xml インスタンスを変更する場合、最終的な形式が、その型の有効なインスタンスである必要があります。 そうでない場合は、検証エラーが返されます。

参照

insert (XML DML)
delete (XML DML)
replace value of (XML DML)
型指定された XML と型指定されていない XML の比較
XML データのインスタンスの作成
xml データ型メソッド