Просмотр хранимой коллекции схем XMLView a Stored XML Schema Collection

ОБЛАСТЬ ПРИМЕНЕНИЯ: даSQL Server нетБаза данных SQL AzureнетХранилище данных SQL AzureнетParallel Data WarehouseAPPLIES TO: yesSQL Server noAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

После импорта коллекции XML-схем с помощью команды Создать коллекцию схем XMLкомпоненты схемы будут храниться в метаданных.After you import an XML schema collection by using CREATE XML SCHEMA COLLECTION, the schema components are stored in the metadata. Можно использовать внутреннюю функцию xml_schema_namespace, чтобы повторно построить коллекцию XML-схем.You can use the xml_schema_namespaceintrinsic function to reconstruct the XML schema collection. Эта функция возвращает экземпляр типа данных xml .This function returns an xml data type instance.

Например, следующий запрос извлекает коллекцию XML-схем (ProductDescriptionSchemaCollection) в реляционной схеме продукции в базе данных AdventureWorks2012AdventureWorks2012 .For example, the following query retrieves an XML schema collection (ProductDescriptionSchemaCollection) from the production relational schema in the AdventureWorks2012AdventureWorks2012 database.

SELECT xml_schema_namespace(N'Production',N'ProductDescriptionSchemaCollection')  
GO  

Если нужно увидеть только одну схему из коллекции, можно задать запрос XQuery для результата типа xml , возвращаемого функцией xml_schema_namespace.If you want to see only one schema from the XML schema collection, you can specify XQuery against the xml type result that is returned by xml_schema_namespace.

SELECT xml_schema_namespace(N'RelationalSchemaName',N'XmlSchemaCollectionName').query('  
/xs:schema[@targetNamespace="TargetNameSpace"]  
')  
GO  

Например, следующий запрос находит сведения об XML-схеме поддержки и гарантий на продукт в коллекции XML-схем ProductDescriptionSchemaCollection .For example, the following query retrieves product warranty and maintenance XML schema information from the ProductDescriptionSchemaCollection XML schema collection.

SELECT xml_schema_namespace(N'Production',N'ProductDescriptionSchemaCollection').query('  
/xs:schema[@targetNamespace="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelWarrAndMain"]  
')  
GO  

Также можно передать в качестве необязательного третьего параметра для xml_schema_namespace целевое пространство имен, чтобы получить из коллекции конкретную схему, как показано в следующем запросе:You can also pass the optional target namespace as the third parameter to the xml_schema_namespace function to retrieve specific schema from the collection, as shown in the following query:

SELECT xml_schema_namespace(N'Production',N'ProductDescriptionSchemaCollection', N'https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelWarrAndMain')  
GO  

Когда в базе данных создается коллекция XML-схем с помощью инструкции CREATE XML SCHEMA COLLECTION, она сохраняет компоненты схемы в метаданных.When you create an XML schema collection by using CREATE XML SCHEMA COLLECTION in the database, the statement stores the schema components in the metadata. Обратите внимание, что сохраняются только те компоненты схемы, которые понимает SQL ServerSQL Server .Note that only the schema components that SQL ServerSQL Server understands are stored. Любые комментарии, заметки или несоответствующие XSD-схеме атрибуты не сохраняются.Any comments, annotations, or non-XSD attributes are not stored. Следовательно, схема, повторно сконструированная посредством функции xml_schema_namespace , функционально эквивалентна первоначальной схеме, но не обязательно будет выглядеть так же.Therefore, the schema reconstructed by xml_schema_namespace is functionally equivalent to the original schema, but it will not necessarily look the same. Например, не будет тех же префиксов, которые были в первоначальной схеме.For example, you will not see the same prefixes you had in the original schema. Схема, возвращаемая функцией xml_schema_namespace , использует префикс t для целевого пространства имен и префиксы ns1, ns2и так далее для всех остальных.The schema returned by xml_schema_namespace uses t as the prefix for the target namespace and ns1, ns2, and so on, for other namespaces.

Если нужно сохранить точную копию XML-схем, следует сохранить схему в файл или в таблицу базы данных в столбец типа xml .If you want to retain an identical copy of the XML schemas, you should save your XML schema in a file or in a database table in an xml type column.

Представление каталога sys.xml_schema_collections также возвращает сведения о коллекциях XML-схем.The sys.xml_schema_collections catalog view also returns information about XML schema collections. Сюда входят, например сведения об имени коллекции, дате создания и владельце коллекции.This information includes the name of the collection, the creation date, and the owner of the collection.

См. также:See Also

Коллекции XML-схем (SQL Server)XML Schema Collections (SQL Server)