xml_schema_namespace (Transact-SQL)

Reconstructs all the schemas or a specific schema in the specified XML schema collection. This function returns an xml data type instance.

Topic link iconTransact-SQL Syntax Conventions


xml_schema_namespace(Relational_schema ,XML_schema_collection_name , [ Namespace ] )


  • Relational_schema
    Is the relational schema name. Relational_schema is sysname.

  • XML_schema_collection_name
    Is the name of the XML schema collection to reconstruct. XML_schema_collection_name is sysname.

  • Namespace
    Is the namespace URI of the XML schema that you want reconstructed. It is limited to 1,000 characters. If Namespace URI is not provided, the whole XML schema collection is reconstructed. Namespace is nvarchar(4000).

Return Types



When you import XML schema components in the database by using CREATE XML SCHEMA COLLECTION or ALTER XML SCHEMA COLLECTION, aspects of the schema used for validation are preserved. Therefore, the reconstructed schema may not be lexically the same as the original schema document. Specifically, comments, white spaces, and annotations are lost; and implicit type information is made explicit. For example, <xs:element name="e1" /> becomes <xs:element name="e1" type="xs:anyType"/>. Also, namespace prefixes are not preserved.

If you specify a namespace parameter, the resulting schema document will contain definitions for all schema components in that namespace, even if they were added in different schema documents or DDL steps, or both.

You cannot use this function to construct XML schema documents from the sys.sys XML schema collection.


The following example retrieves the XML schema collection ProductDescriptionSchemaCollection from the production relational schema in the AdventureWorks database.

USE AdventureWorks2008R2;
SELECT xml_schema_namespace(N'production',N'ProductDescriptionSchemaCollection')