分享
 
 
 

SQL Server 2005 中的 XML 选项详解

王朝mssql·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

【导读】本文介绍 Visual Studio 2005/SQL Server 2005 环境中用于处理 XML 数据的三个选项,包括使用方案以及指导用户在各选项之间进行选择的指南。

一、System.Xml、SQLXML 和 XML 数据类型简介

本节简要介绍 Microsoft SQL Server 2000 中提供的 XML 支持的发展历史,并概要介绍 Microsoft Visual Studio 2005/SQL Server 2005 环境中提供的用于处理 XML 和关系数据的三个选项。这三个选项是:1) System.Xml 命名空间中的类,2) SQLXML 类,3) SQL Server 2005 中提供的 XML 数据类型。

XML 支持最早添加到 Microsoft SQL Server 2000 中,为用户提供以下功能:

• 将关系数据作为 XML 公开

• 将 XML 文档拆分到行集合

• 通过使用 XML 数据精简 (XDR) 方案,将 XML 方案映射到数据库方案,从而创建 XML 视图

• 使用 XPath 在 XML 视图上创建查询

• 在 SQL Server 中通过 HTTP 公开数据

此支持在 SQLXML Web 的后续版本中得到了进一步增强。增强功能包括:

• 更新程序和 XML 海量加载可以保留对 XML 视图的更改

• 支持带批注的 XML 方案定义语言 (XSD),以便描述映射(仍然支持 XDR,但不建议使用)

• 客户端的 FOR XML

• SQLXML 托管类

• 支持 Web 服务

Microsoft .NET Framework 1.0 对读取、写入和处理 XML 文档提供了广泛的支持。这种支持在 .NET Framework 2.0 中得到了进一步增强,提高了各种 XML 类的性能和可用性。.NET Framework 在 System.Xml 命名空间中提供的新类可用于在 XML 数据与关系数据之间进行相互映射。

SQLXML 是一组使 SQL Server 数据库中的关系数据能够与 XML 无缝集成的库和技术。它是一个中间层组件,不包括由 FOR XML 和 OPENXML 提供的服务器端 XML 支持。SQLXML 提供了一个方案驱动的映射方法,能够从关系源数据生成 XML 并将表示关系信息的 XML 加载回关系表中。SQLXML 类对 SQL Server 2000(及更高版本)的数据库提供了 XML 支持。

Microsoft SQL Server 2005 以 XML 数据类型的形式添加了内置的 XML 支持。XML 数据可以存储在 XML 数据类型列内部。另外,通过将一个 XML 方案集合与此 XML 数据类型列关联,还可以对其进行进一步的限制。存储在 XML 数据类型列中的 XML 值可以借助 XQuery 和 XML 数据修改语言 (DML) 进行处理。可以在 XML 数据上建立索引,以增强查询性能。此外,FOR XML 和 OPENXML 也已得到增强,能够支持新的 XML 数据类型。

SQL Server 2005 中引入的存储和处理 XML 数据的新功能与 SQL Server 早期版本中提供的 XML 功能结合在一起,为开发人员提供了多种在 XML 应用程序中存储和处理 XML 数据的方法。由于使用 SQL Server 2005 提供的方法,有多种方法可以生成 XML 应用程序,因此,了解各种不同技术的方案,以及如何在各种技术之间进行权衡和配合对于作出正确的选择是至关重要的。本文提供了如何选择适当的方法,使用 SQL Server 2005 开发 XML 应用程序的指南。

二、XML 使用方案

XML 的应用领域可大致划分为:

• 用于商业集成的 XML:商业集成,也称为企业应用集成 (EAI),包括 A2A(应用程序对应用程序)、B2B(企业对企业)以及 B2C(企业对用户)应用程序。运行在不同系统上的应用程序使用基于 XML 的消息相互通讯。

• 用于内容管理的 XML:使用基于 XML 的内容管理系统,用户可以存储、检索、修改和查询 XML 文档。这些系统以其原有格式存储 XML 文档。

下面介绍符合上述分类的几种方案。这些方案的解决方案将在以下几节中给出,并且会详细介绍 SQL Server 2005/Visual Studio 2005 环境中提供的各种 XML 选项的处理情况。

方案 1:保险理赔

一家汽车保险公司在 Internet 上提供服务,允许其投保人或代理通过公司的网站进入保险理赔。理赔将由位于公司总部的中央系统进行处理。处理完毕后,系统会将与该理赔相关的信息以指定的 XML 格式存储起来。系统中必须保留这些 XML 文档的精确副本,以便用于法律用途。此方案展示了 XML 在内容管理中的应用。

方案 2:汽车制造商与零件供应商之间的数据交换 I

一家汽车制造商与多家零件供应商进行交互,以便获得公司所需的零件。通常,该制造商要接收供应商的发票。然后,将与发票相关的数据手动输入到老式的发票处理系统中。发票处理系统以关系格式存储数据。而现在,该制造商希望将发票数据自动输入到老式的发票处理系统中。此方案是 XML 用于商业集成的示例。

方案 3:汽车制造商与零件供应商之间的数据交换 II

此方案包含一家与多家零件供应商进行交互的汽车制造商,如前一方案中所述。该制造商目前使用的系统不能为供应商提供查询发票状态或者从制造商获得付款说明的副本的功能。目前,供应商只能通过电话获得这些信息。该汽车制造商需要通过 Web 公开这些信息,以使供应商能够自动执行这些任务。此方案展示了 XML 在商业集成中的应用。

方案 4:内容管理系统

某公司通过 Web、书籍和 CD-ROM 等多种渠道向其客户提供医学、法律和技术等领域的信息。该公司要建立一套内容管理系统,以帮助其在较短的时间内向客户提供高质量的内容。此方案展示了 XML 在内容管理中的应用。

方案 5:客户调查

某公司在 Internet 上提供机票预订业务,要对每个季节进行调查,以确定当前季节最受客户喜爱的旅游地点。每个季节所用的调查表均不同,而且将来调查表也可能改变。该公司将对调查信息进行分析,并根据分析结果设计出满足大多数客户要求的旅游套餐。此方案可看作 XML 在内容管理中的应用。

三、.NET Framework 中的 XML 类

Microsoft .NET Framework 对开发基于 XML 的产品提供了卓越的支持。在 .NET Framework 中,XmlTextReader、XmlTextWriter、XmlDocument 和 XmlValidatingReader 等核心类可以在 System.Xml 命名空间中获得,该命名空间是所有 XML 类的根命名空间。使用这些核心类,用户可以使用基于数据流和基于 DOM(基于文档对象模型)的两种浏览/访问模型来读取、写入和验证 XML 文档。System.Xml 命名空间包含以下子命名空间:

• System.Xml.Schema - 包含用于处理 XML 方案定义语言 (XSD) 方案的类。

• System.Xml.Serialization - 提供将对象序列化为 XML 格式的文档或数据流的类。

• System.Xml.XPath - 包括使用 XPath 表达式浏览 XML 文档的类。

• System.Xml.Xsl - 具有用于执行可扩展样式表转换 (XSLT) 的类。

System.Xml 命名空间的增强功能

在 Visual Studio 2005 中,新类(如 XsltCommand)和对现有 XML 类(如 XmlDocument)的增强可用于对 XML 数据进行各种操作,包括修改 XML 文档、应用 XSL 转换等。

Visual Studio 2005 中与 System.Xml 命名空间中的 XML 类相关的一些增强功能如下:

• XmlDocument 类添加了 XML 方案验证支持。

• XmlReader 和 XmlWriter 类的功能得到了增强,性能显著提高,并支持 XML 方案类型。而且,还添加了静态 Create 方法,提供了一种较为简单的方法,可使用 XmlReaderSettings 和 XmlWriterSettings 类创建 XmlReader 和 XmlWriter 实例,以便配置所创建的类型。

有关 System.Xml 增强功能的详细信息,请参见 What's New in System.Xml for Visual Studio 2005 and the .NET Framework 2.0 Release 白皮书。

System.Xml 命名空间中的类可用于实现自定义的 XML 分析、处理和存储逻辑。利用 SQL Server 2005 的公共语言运行库 (CLR) 的宿主功能以及 Visual Studio 2005 中的 XML 类,可以在中间层或数据库层处理 XML。

.NET Framework 中的 XML 类的使用包括将 XML 文档作为类型 [n]varchar(max) 或 [n]varbinary(max) 的列保存在数据库中,或者作为文件保存在文件系统中,以及使用 System.Xml 命名空间中的类在中间层或数据库层处理这些文档。.NET Framework 中的 XML 类还可用于操作以 XML 数据类型存储的数据。

.NET Framework 中的 XML 类适用于以下情况:

• 访问 .NET Framework XML 的所有功能,如数据流分析、文档类型定义 (DTD)、XSD 验证、XSLT 处理等。

• 仅仅将 SQL Server 用作 XML 文档的数据存储区,不需要在数据库内部进行深入访问。

• 使用 .NET Framework 中的 XML 类进行 XML 文档的大多数或全部处理并在文档级进行更新。

[1] [2] [3] [4] [5] 下一页

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有