使用带批注的 XDR 架构创建 XML 视图

xml|创建|架构|视图

可以使用 XDR(简化 XML-Data)架构创建关系数据的 XML 视图。然后可以使用 XPath 查询来查询这些视图。这类似于使用 CREATE VIEW 语句创建视图并指定对视图的 SQL 查询。

XML 架构描述 XML 文档的结构以及对文档中数据的不同约束。当指定对该架构的 XPath 查询时,返回的 XML 文档结构由对其执行 XPath 查询的架构确定。

在 Microsoft SQL Server 2000 中,使用简化 XML-Data (XDR) 语言创建架构。XDR 是一种灵活的语言,它克服了用来描述文档结构的文档类型定义 (DTD) 的一些限制。与 DTD 不同,XDR 架构使用与 XML 文档相同的语法描述文档结构。 此外,在 DTD 中,所有数据内容均为字符数据。XDR 语言架构使您得以指定元素或特性的数据类型。

在 XDR 架构中,<Schema> 元素包含整个架构。作为 <Schema> 元素的属性,可以描述定义架构名称的特性和架构驻留的命名空间。在 XDR 语言中,所有元素声明都必须包含在 <Schema> 元素中。
最小的 XDR 架构如下:
<?xml version="1.0" ?>
<Schema xmlns="urn:schemas-microsoft-com:xml-data">
   ...
</Schema>
<Schema> 元素是从 xml-data 命名空间 (urn:schemas-microsoft-com:xml-data) 派生出的。
 
说明  本文档假设您熟悉 XML-Data 语言。
XDR 架构的批注
可以在 XDR 架构中使用对到数据库的映射进行描述的批注来查询该数据库,并以 XML 文档格式返回结果。SQL Server 2000 引入了许多批注,可以使用这些批注将 XDR 架构映射到数据库中的表和列。可以对 XDR 架构所创建的 XML 视图指定 XPath 查询,以查询数据库并获得 XML 格式的结果。
这是替代更复杂的 SQL 查询编写过程的方法,该方法使用 FOR XML EXPLICIT 模式将 XML 文档结构作为查询的一部分加以描述。有关在 SELECT 查询中使用 FOR XML EXPLICIT 模式的更多信息,请参见使用 EXPLICIT 模式。然而,为克服对映射架构上的 XPath 查询的大多数限制,请使用 FOR XML EXPLICIT 模式的 SQL 查询返回 XML 文档格式的结果。
如果拥有公用 XDR 架构(如 Microsoft BizTalk 架构),可以执行下列任一操作: 
· 编写 FOR XML EXPLICIT 模式的查询,以便生成的数据对公用 XDR 架构有效;然而,编写 FOR XML EXPLICIT 查询可能比较麻烦。 
· 制作公用 XDR 架构的专用复本。然后将批注添加到专用复本,从而生成映射架构。可以指定对映射架构的 XPath 查询。该查询所生成的是公用架构命名空间中的数据。与编写复杂的 FOR XML EXPLICIT 查询相比,创建带批注的架构并指定对该架构的 XPath 查询是一个简单得多的过程。下图说明了此过程。 
 
 
说明  Microsoft BizTalk 框架旨在为常用商业对象(如合同、订单和约会)定义标准 XML 格式。这些商业架构复本可以在 http://biztalk.org/BizTalk/default.asp 中找到。
映射架构
在关系数据库的上下文中,将任意的 XDR 架构映射到关系存储是非常有用的。达到此目的的一个方法是对 XDR 架构进行批注。带批注的 XDR 架构称为"映射架构",它提供了关于如何将 XML 数据映射到关系存储的信息。映射架构实际上是关系数据的 XML 视图。可以使用这些映射检索 XML 文档格式的关系数据。
Microsoft SQL Server 2000 引入了许多批注,可以在 XDR 架构中使用这些批注,将元素和特性映射到数据库表和列。可以使用 XPath(XML 路径)指定对映射架构(XML 视图)的查询。映射架构描述了最后所得到的文档结构。
批注的命名空间
在 XDR 架构中,使用下面的命名空间指定批注:urn:schemas-microsoft-com:xml-sql。
下例显示指定命名空间的最简单方法是在 <Schema> 标记中指定它。urn:schemas-microsoft-com:xml-sql 命名空间的批注必须是由命名空间限定的。
<?xml version="1.0" ?>
<Schema xmlns="urn:schemas-microsoft-com:xml-data"
        xmlns:sql="urn:schemas-microsoft-com:xml-sql"
               >
    ...........
</Schema>
所用的命名空间前缀是任意的。 在本文档中,sql 前缀用于表示批注命名空间和使此命名空间中的批注区别于其它命名空间中的批注。
数据类型的命名空间
XDR 架构使您得以指定元素或特性的数据类型。使用下面的命名空间指定数据类型: urn:schemas-microsoft-com:datatypes。
以下是带有命名空间声明的最小 XDR 架构:
<?xml version="1.0" ?>
<Schema xmlns="urn:schemas-microsoft-com:xml-data"
        xmlns:sql="urn:schemas-microsoft-com:xml-sql"
        xmlns:dt="urn:schemas-microsoft-com:datatypes">
   ...
</Schema>
所用的命名空间前缀是任意的。 在本文档中,dt 前缀用于表示数据类型命名空间和使此命名空间中的批注区别于其它命名空间中的批注。
<Schema> 元素来源于 xml-data 命名空间:urn:schemas-microsoft-com:xml-data。 
XDR 架构示例
下例显示如何将批注添加到 XDR 架构中。XDR 架构由 <Employee> 元素和 EmpID、Fname 及 Lname 特性组成。
<?xml version="1.0" ?>
<Schema xmlns="urn:schemas-microsoft-com:xml-data"
        xmlns:dt="urn:schemas-microsoft-com:datatypes"
        xmlns:sql="urn:schemas-microsoft-com:xml-sql">

<ElementType name="Employee" >
    <AttributeType name="EmpID" />
    <AttributeType name="FName" />
    <AttributeType name="LName" />

    <attribute type="EmpID" />
    <attribute type="FName" />
    <attribute type="LName" />
</ElementType>
</Schema>
现在,将批注添加到此 XDR 架构中,使架构的元素和特性映射到数据库的表和列。 带批注的 XDR 架构如下: 
<?xml version="1.0" ?>
<Schema xmlns="urn:schemas-microsoft-com:xml-data"
        xmlns:dt="urn:schemas-microsoft-com:datatypes"
        xmlns:sql="urn:schemas-microsoft-com:xml-sql">

<ElementType name="Employee" sql:relation="Employees" >
    <AttributeType name="EmpID" />
    <AttributeType name="FName" />
    <AttributeType name="LName" />

    <attribute type="EmpID" sql:field="EmployeeID" />
    <attribute type="FName" sql:field="FirstName" />
    <attribute type="LName" sql:field="LastName" />
</ElementType>
</Schema>
在此映射架构中,使用 sql:relation 批注将 <Employee> 元素映射到 Employees 表。使用 sql:field 批注将特性 EmpID、Fname 和 Lname 映射到 Employees 表中的 EmployeeID、FirstName 和 LastName 列。
此带批注的 XDR 架构提供关系数据的 XML 视图。使用 Xpath(XML 路径)语言可以查询该 XML 视图。Xpath 查询返回 XML 文档形式的结果,而不是 SQL 查询所返回的行集。
 
说明  在映射架构中,指定的关系值(如表名和列名)区分大小写。

时间: 2024-08-18 03:34:17

使用带批注的 XDR 架构创建 XML 视图的相关文章

创建带有关联的 XML 架构的 XML 文件

xml|创建|架构 一.创建带有关联的 XML 架构的 XML 文件 1.创建新的 Windows 应用程序项目 首先需要在 Visual Basic 或 Visual C# 中创建新的 Windows 应用程序.创建一个新项目并将其命名为"XMLCustomerList" ,从"文件"菜单中指向"新建",然后单击"项目"以显示"新建项目"对话框. 根据要使用的语言,在"项目类型"窗格中

在Excel2003中创建XML映射

excel|xml|创建 Microsoft Office Excel 2003 通过允许您将自己的 XML 架构定义 (XSD) 添加到工作薄,提高了对使用本机 XML 的支持.这样可以创建一个 XML 映射,用于在导入或导出数据时使数据变得更有意义.因此,您可以导入符合自定义 XML 词汇或架构的数据,然后使用相同的XML 架构将该数据写回去. 该功能面向 Office 解决方案开发人员,但专家用户也能够很好地使用它.该功能使您能够: • 在 Excel 电子表格和 XML 结构之间创建一个

技巧:在Word 2007中创建XML文档

从Word 2003升级到Word2007的用户可能会注意到关于XML的某些改变:用户将不能从"XML文档"模板开始新建XML文档.因为Word 2007中不包含"XML文档"模板,取而代之的是"任何"文档都变成XML文档.只需简单地选择"Office按钮-另存为",并将"保存类型"设置为"Word XML文档".值得注意的是"Word 2003 XML文档"选项.它

在Word 2007中创建XML文档

如果是从word 2003升级到Word 2007,那么可能会注意到关于XML的某些改变.一方面,你将不能从"XML文档"模板开始新建XML文档.因为Word 2007中不包含"XML文档"模板. 取而代之的是,"任何"文档都变成XML文档.只需简单地选择"office按钮"-"另存为",并将"保存类型"设置为"word XML文档".注意"Word 200

在Word 2007中创建XML文档的技巧

  如果是从Word 2003升级到Word 2007,那么可能会注意到关于xml的某些改变.一方面,你将不能从"XML文档"模板开始新建XML文档.因为Word 2007中不包含"XML文档"模板. 取而代之的是,"任何"文档都变成XML文档.只需简单地选择"Office按钮"-"另存为",并将"保存类型"设置为"Word XML文档".注意"Word 2

XmlTextWriter创建XML文件

xml|创建 引言 随着XML的普及以及在动态WEB应用程序中大量应用,如何通过.NET创建,删除,修改XML文件变的也来也重要了.一个简单的概念是,XML文件跟大的文本文件并没有什么区别,同时它是先于.NET出现,很多ASP的开发者,当他需要程序输出XML文件的时候,通常都是用Response.Write()方法输出为XML文档. 使用Response.Write()的方式来输出XML文档,并不是一种那么好的方法,首先,我们用这种方法输出字符以组成XML文件的时候,我们会很担心输出的这些字符是

使用Javascript创建XML文件

javascript|xml|创建  在客户端创建XML文件可以使用FileSystemObject (FSO) 对象或直接使用XML Document Object Model (DOM).若使用FSO则客户端必须安装 Window Script 5.5,使用XML DOM则需要在客户端安装有Microsoft XML Core Services.安全性方面需要在IE的安全设置中启用ActiveX控件. 1.使用FSO创建XML文件 使用FSO对象的GetSpecialFolder方法获得要创

用MySQL和PHP创建XML

mysql|xml|创建 XML是作为数据交换标准而出现的.Java和.NET都内在支持XML,但是其它平台上的开发者也不用担心自己被这项技术所遗弃了.PHP就是一个颇受欢迎的支持XML的脚本环境. 在本文中,我将向你介绍利用诸如PHP和MySQL这样的开放源码工具来处理XML的过程.我将以执行一个MySQL查询并把从查询所得到数据格式化为XML为例来加以说明.最后,在开始埋头编写代码之前,我将介绍如何把XML写入文件并检测系统设置. 为了可以运行本文所给出的代码,你需要能过运行PHP和MySQ

在.NET里更好的创建XML文档

xml|创建 在.NET里更好的创建XML文档 作者: BUILDER.COM 创建XML文档不是一件特别困难的事,但是却是很让人乏味的,尤其是在你必须总是创建类型相似的文档的时候.使用代码来处理这些重复性的任务是行得通的.但是利用机器自动编程来创建XML文档到底有多难或者有多容易?这取决于你所使用的方法. 编写标示语言是令人乏味的任务  对于这个问题过于简单化的回答是:创建XML文档和创建文本文档是一样简单的.毕竟,XML文档只是一个文本文档.但是一个更加现实的回答是:编写标示语言可能会是令人