WITH XMLNAMESPACES

適用対象: SQL Server Azure SQL Database Azure SQL Managed Instance

1 つまたは複数の XML 名前空間を宣言します。

Transact-SQL 構文表記規則

構文

  
WITH XMLNAMESPACES ( <XML namespace declaration item>  
[ { , <XML namespace declaration item> }...] )   
  
<XML namespace declaration item> ::=  
<xml_namespace_uri> AS <xml_namespace_prefix>  
| <XML default namespace declaration item>  
<xml_namespace_uri> ::= <character string literal>  
  
<xml_namespace_prefix> ::= <identifier>  
  
<XML default namespace declaration item> ::=  
DEFAULT <xml_namespace_uri>  
  

引数

xml_namespace_uri
宣言する XML 名前空間を識別する Uniform Resource Identifier (URI) を指定します。 xml_namespace_uri は SQL 文字列です。

xml_namespace_prefix
xml_namespace_uri で指定した名前空間 URI 値にマップされ、関連付けられるプレフィックスを指定します。 xml_namespace_prefix は SQL Server 識別子にする必要があります。

解説

共通テーブル式を含むステートメントで WITH XMLNAMESPACES 句を使用する場合は、ステートメント内で WITH XMLNAMESPACES 句を共通テーブル式より前に置く必要があります。

次は、WITH XMLNAMESPACES 句を使用するときに適用される一般的な構文規則です。

  • XML 名前空間の各宣言には、既定の XML 名前空間宣言の項目が少なくとも 1 つ含まれている必要があります。

  • 使用する各 XML 名前空間プレフィックスは、名前の一部にコロン (:) が使用されていない名前 (NCName) であることが必要です。

  • 名前空間プレフィックスは 2 回定義できません。

  • XML 名前空間プレフィックスと URI では、大文字小文字が区別されます。

  • XML 名前空間プレフィックス xmlns は宣言できません。

  • XML 名前空間接頭辞 xml は、名前空間 URI 'http://www.w3.org/XML/1998/namespace' と別のプレフィックスを割り当てることができないこの URI 以外の名前空間ではオーバーライドできません。

  • クエリで ELEMENTS XSINIL ディレクティブが使用されている場合、XML 名前空間プレフィックス xsi は再宣言できません。

  • xsi 標準名前空間を使用するために 'http://www.w3.org/2001/XMLSchema-instance ' を宣言する必要はありません。 'http://www.w3.org/2001/XMLSchema-instance ' スキーマが xml ドキュメントで正しく宣言されている限り、未指定の場合は XML/XPATH プロセッサによって暗黙的に追加され、xpath 式で xsi プレフィックスを使用できます。

  • URI 文字列値は、現在のデータベースの照合順序のコード ページに基づいてエンコードされ、内部で Unicode に変換されます。

  • XML 名前空間 URI では、xs:anyURI で使用される XSD の空白短縮の規則に従って空白が短縮されます。 また、XML 名前空間 URI 値は、エンティティ化または非エンティティ化されないことに注意してください。

  • XML 名前空間 URI に対して、無効な XML 1.0 文字がないかどうかが確認され、検出された場合はエラーが生成されます (U+0007 など)。

  • 空白が短縮された後の XML 名前空間 URI が長さ 0 の文字列になると、"無効な空の名前空間 URI" エラーが発生します。

  • XMLNAMESPACES キーワードは WITH 句のコンテキストでは予約されています。

例については、「 WITH XMLNAMESPACES を使用したクエリへの名前空間の追加」を参照してください。

参照

XQuery 言語リファレンス (SQL Server)