用OPENXML将XML数据转换为关联数据

从SQL Server 2000开始,微软开始支持XML类型的数据。在SQL Server2005中,微软延续了这一特性,并加强了对XML 数据列、XML变量以及XML索引的支持。

在数据库中存储XML数据是一个很出色的特征。对于大部分的数据处理需求来讲,将XML数据格式化为其它关联数据是十分重要。这也是引入OPENXML函数的原因。OPENXML是一个SQL Server提供的函数,它的作用是接收XML数据,提供内存中 XML数据的行集视图。

一个OPENXML函数用例

在下面的例子中,我们将演示如何使用OPENXML函数。假定我们现在正在从事一个网上购物系统开发。在这个场景中,顾客选择登录网站方式购买多种产品。因为根据公司的商业模式,通过网站购物能够节省成本。我们假定大部分的顾客都购买了七件或者更多的商品。我们的目标是当客户频繁的访问网站的时候,要尽量减少数据库的调用。我们的想法是将网页上提交的采购需求存储为XML文档,并且将其中的XML数据以字符串的形式传送给数据库底层的程序处理。这样,我们就可以在一次数据库调用中将XML数据中的订单信息插入数据库中。

我们该如何解决上面的问题呢?首先我们看看将要编辑的网页数据。一个简单的XML文档含有来自网站的很多核心信息,包括:产品名称、价格、日期以及顾客资料。列表A包含了一个简单的XML数据流。

<ShoppingCart>
<Purchase ProductID="7" Price="10.00" SaleDate="10/11/2006" SaleBatchID = "4523" CustomerID = "2398"/>
<Purchase ProductID="99" Price="25.00" SaleDate="10/11/2006" SaleBatchID = "4523" CustomerID = "2398"/>
<Purchase ProductID="32" Price="12.00" SaleDate="10/11/2006" SaleBatchID = "4523" CustomerID = "2398"/>
<Purchase ProductID="11" Price="90.00" SaleDate="10/11/2006" SaleBatchID = "4523" CustomerID = "2398"/>
<Purchase ProductID="7" Price="50.00" SaleDate="10/11/2006" SaleBatchID = "4523" CustomerID = "2398"/>
<Purchase ProductID="8" Price="67.35" SaleDate="10/11/2006" SaleBatchID = "4523" CustomerID = "2398"/>
<Purchase ProductID="45" Price="29.99" SaleDate="10/11/2006" SaleBatchID = "4523" CustomerID = "2398"/>
<Purchase ProductID="54" Price="49.49" SaleDate="10/11/2006" SaleBatchID = "4523" CustomerID = "2398"/>
</ShoppingCart>


列表A

时间: 2024-11-03 22:20:00

用OPENXML将XML数据转换为关联数据的相关文章

编程实战——电影管理器之XML存储电影信息数据

但凡管理器之类的软件,存储数据是必不可少的.存储数据的话,有几种选择.一是用数据库,把数据存储到数据库里:一是用文本文件,把数据存储到文本文件里:一种是利用XML文件,把数据对象转换为XML后,存储到XML文件(实际上也是文本文件).   把数据对象和XML文件对应起来,有一个术语,称之为XML序列化.参看之前写的文章"利用XML序列化实现程序配置文件","简述Xml.Serialization如何序列化对象到XML文件"   在本软件的设计中,设计了两种基本的数据

将Access数据转换为XML格式

access|xml|数据|转换 问:我怎样才能将Microsoft Access数据表中的数据转换为XML格式? 答:以下应用程序可以帮助您将Access数据转换为XML格式:Access 2002. ADO 2.5和SQLXML.您可以通过Access 2002(Microsoft Office XP的一部分)查询数据或者使用XML格式保存数据.您可能想自动完成这个转换过程.ADO 2.5及其后续版本使您可以将数据打开到一个记录集中,然后以XML格式持有记录集,如以下代码所示: rs.Sav

asp.net将datatable数据转换为xml下载

问题描述 asp.net将datatable数据直接转换为xml并下载吗?现在的程序是将datatable数据转换为xml文件并保持在服务器,然后再下载.不知道能跳过"将datatable生成xml文件保存在服务器"这一步,直接将datatable转换成xml文件下载吗? 解决方案 解决方案二:直接将xml字符串response出来就可以了啊,指定返回的是xml,你查下文件下载,思路一样的解决方案三:有点不能理解将datatable数据转换为xml文件并保持在服务器和将datatabl

数据转换为XML、CSV或ECM格式类型如何应用各种阈值限制

InfoSphere Optim Data Masking Solution 提供了一种屏蔽数据源中使用的个人信息的方式.它为您提供一种为测试用途而使用逼真但虚构的数据的方法.在以前的 InfoSphere Optim 版本中,您可以将提取的数据 (.XF) 转换或屏蔽到另一个数据集中,或者将它们提取到一个业务对象 (CSV) 文件中.业务对象 (CSV) 文件格式使所有表数据均可存储为 CSV 文件中的一条记录.从 Optim 8.1 及其更高版本开始,您不仅能将提取的数据转换为 CSV.XM

[工具库]JOXMLBuilder工具类——一键把多个bean对象数据转换为XML格式数据

本人大四即将毕业的准程序员(JavaSE.JavaEE.android等)一枚,小项目也做过一点,于是乎一时兴起就写了一些工具. 我会在本博客中陆续发布一些平时可能会用到的工具. 代码质量可能不是很好,大家多担待! 代码或者思路有不妥之处,还希望大牛们能不吝赐教哈!   以下代码为本人原创,转载请注明: 本文转载,来自:http://www.cnblogs.com/tiantianbyconan/archive/2013/02/19/2917398.html   JOXMLBuilder工具类:

Visual Foxpro 7全新登场之XML在COM组件数据传递中的意义

说在前面 记得我第一次接触 COM 组件编程时,就有这样的疑问:传递数据集有没有好办法.我们知道,Visual FoxPro 是最强大的数据处理系统,它的Cursor 的强大.灵活的支持是无有匹敌的.既然Visual FoxPro 对数据集的处理能力这么强大,但是COM编程时,怎样简单的在各类客户端程序与 Visual FoxPro 编写的 COM 组件之间传递 Cursor --只有来去容易,用的才方便舒心! 那个时候我们模仿ADO组件,使用 "属性+循环" 的方法解决这个难题,记得

InfoSphere Streams如何帮助您将数据转换为洞察

IBM 在多年前就引入了 "智慧地球" 这个术语.利用这个术语,可以描述 3 个主要属性: 物联化 智能化 互连化 长久以来,这已经形成一个现实.想象一下智能手机的激增,这实际上可能提供了比保持联系更多的功能.智能手机包括 GPS 提供的用于测量温度和湿度的一组传感器.再加上世界各地使用的所有传感器和仪表,我们看到了一个不断演化的真实情况. 这就构成了应该转换成信息 的大量数据.例如,我们可以利用群众的力量来洞察不断变化的情形.我们可以察觉出可能产生机遇或避免严重灾害的趋势.我们可以看

Javascript实现关联数据(Linked Data)查询及注意细节_javascript技巧

前言 自由百科全书不仅仅应当可以自由编写,而更应该可以自由获得. DBpedia对Wikipedia的数据变成Linked Data形式,使得机器也能读懂并自由获得这些数据. 本文的主要目的是利用Javascript从DBpedia中获取我们想要的数据. 对Linked Data不太了解的请参考:关联数据入门--RDF. SPARQL Trying to use the Semantic Web without SPARQL is like trying to use a relational

关联数据入门——RDF应用_XML基础

引言语义网(Semantic Web)是一种数据的网络,让数据得以共享,而不仅仅是被应用程序束缚. 但语义网也不仅仅是把数据放在互联网上,而是试图将数据联系起来,并产生数据与现实事物的联系,以方便人与机器阅读与理解这些数据. The Semantic Web isn't just about putting data on the web. It is about making links, so that a person or machine can explore the web of d