適用対象:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Microsoft Fabric の SQL データベース
指定された XML スキーマ コレクション内のすべてのスキーマまたは特定のスキーマを再構築します。 この関数は、 xml データ型のインスタンスを返します。
構文
xml_schema_namespace( Relational_schema , XML_schema_collection_name , [ Namespace ] )
引数
Relational_schema
リレーショナル スキーマ名。
Relational_schema は sysname です。
XML_schema_collection_name
再構築する XML スキーマ コレクションの名前を指定します。
XML_schema_collection_name は sysname です。
Namespace
再構築する XML スキーマの名前空間 URI です。 上限は 1,000 文字です。 名前空間 URI を指定しない場合、XML スキーマ コレクション全体が再構築されます。
名前空間は nvarchar(4000) です。
戻り値の型
xml
解説
CREATE XML SCHEMA COLLECTIONやALTER XML SCHEMA COLLECTIONを使ってXMLスキーマコンポーネントをデータベースにインポートすると、検証に使われたスキーマの一部が保持されます。 したがって、再構築されたスキーマは、元のスキーマ ドキュメントとは構文的に同じにならない可能性があります。 特に、コメント、空白、注釈は失われ、暗黙的な型の情報が明示されます。 たとえば、<xs:element name="e1" /> は <xs:element name="e1" type="xs:anyType"/> になります。 また、名前空間プレフィックスは保持されません。
名前空間のパラメーターを指定した場合、結果のスキーマ ドキュメントにはその名前空間内のすべてのスキーマ コンポーネントの定義が含まれます。それらのコンポーネントが異なるスキーマ ドキュメントまたは DDL のステップ、あるいはその両方に追加された場合であっても、同様です。
この関数を使用して、XML スキーマ ドキュメントを sys.sys XML スキーマ コレクションから構築することはできません。
例
次の例では、XML スキーマ コレクション ProductDescriptionSchemaCollection を、AdventureWorks データベース内の運用リレーショナル スキーマから取得します。
USE AdventureWorks;
GO
SELECT xml_schema_namespace(N'production',N'ProductDescriptionSchemaCollection');
GO