AdventureWorks2008R2 数据库中的 xml 数据类型表示形式

AdventureWorks2008R2 数据库包含若干 xml 类型列。下表列出了本部分的主题,用于说明这些列。这些列用在 SQL Server 联机丛书中的各个查询示例中。

每个主题都提供了存储在这些列中的示例 XML 数据实例。这些列中大多数都是类型化的 XML 列。这些主题提供了用来类型化这些列的 XML 架构集合。若要了解针对它们指定的查询,应查看存储在这些列中的 XML。

本节涉及的主题

主题

说明

关于 Contact.AdditionalContactInfo xml 列

AdventureWorks2008R2 数据库中有两类客户:分销商和单个客户。此列将有关分销商的其他联系信息存储为 XML。

关于 Store.Demographics xml 列

存储分销商调查数据。

关于 Individual.Demographics xml 列

存储单个客户调查数据。

关于 ProductModel.Instructions xml 列

存储有关产品型号的生产说明。当前存储了有关多个不同自行车型号的说明。

关于 ProductModel.CatalogDescription xml 列

将产品型号目录说明存储为 XML。

关于 Illustration.Diagram xml 列

将生产图解存储为 XML(SVG 格式)。

关于 JobCandidate.Resume xml 列

将雇员简历存储为 XML 文档。

本节中讨论的大多数列(Illustration 表中的 Diagram 列除外)都是类型化的 xml 列。有关详细信息,请参阅类型化的 XML 与非类型化的 XML 的比较。若要查看用于这些列的 XML 结构,请访问此 Microsoft 网站

以下查询将从 AdventureWorks2008R2 数据库中返回 XML 架构集合的列表。有关 XML 架构集合的详细信息,请参阅管理服务器上的 XML 架构集合

USE AdventureWorks2008R2;
GO
SELECT *
FROM  sys.xml_schema_collections;

-- Result shows the list of XML schema collection names.
AdditionalContactInfoSchemaCollection
IndividualSurveySchemaCollection
HRResumeSchemaCollection
ProductDescriptionSchemaCollection
ManuInstructionsSchemaCollection
StoreSurveySchemaCollection

以下查询将返回带有关系架构名称的 XML 架构集合名称:

SELECT xsc.xml_collection_id, 
       s.name + '.' + xsc.name as xml_collection, 
       xsc.principal_id, xsc.create_date, xsc.modify_date
FROM sys.xml_schema_collections xsc 
     JOIN sys.schemas s
     ON xsc.schema_id = s.schema_id;

结果中的 xml_collection 列返回了 AdventureWorks2008R2 数据库中的下列 XML 架构集合:

  • Person.AdditionalContactInfoSchemaCollection

  • Sales.IndividualSurveySchemaCollection

  • HumanResources.HRResumeSchemaCollection

  • Production.ProductDescriptionSchemaCollection

  • Production.ManuInstructionsSchemaCollection

  • sys.sys

有关 sys.sys XML 架构集合的详细信息,请参阅内置 XML 架构集合 (sys)

可以使用 xml_schema_namespace 内部函数来重新构造 XML 架构集合,如下所示:

SELECT xml_schema_namespace(N'Person',N'AdditionalContactInfoSchemaCollection');
GO
SELECT xml_schema_namespace(N'HumanResources',N'HRResumeSchemaCollection');
GO
SELECT xml_schema_namespace(N'Production',N'ProductDescriptionSchemaCollection');
Go
SELECT xml_schema_namespace(N'Production',N'ManuInstructionsSchemaCollection');
GO
SELECT xml_schema_namespace(N'Sales',N'StoreSurveySchemaCollection');
GO

有关详细信息,请参阅查看存储 XML 架构集合