第18章XML技术.docx

上传人:b****8 文档编号:8981353 上传时间:2023-05-16 格式:DOCX 页数:9 大小:19.63KB
下载 相关 举报
第18章XML技术.docx_第1页
第1页 / 共9页
第18章XML技术.docx_第2页
第2页 / 共9页
第18章XML技术.docx_第3页
第3页 / 共9页
第18章XML技术.docx_第4页
第4页 / 共9页
第18章XML技术.docx_第5页
第5页 / 共9页
第18章XML技术.docx_第6页
第6页 / 共9页
第18章XML技术.docx_第7页
第7页 / 共9页
第18章XML技术.docx_第8页
第8页 / 共9页
第18章XML技术.docx_第9页
第9页 / 共9页
亲,该文档总共9页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

第18章XML技术.docx

《第18章XML技术.docx》由会员分享,可在线阅读,更多相关《第18章XML技术.docx(9页珍藏版)》请在冰点文库上搜索。

第18章XML技术.docx

第18章XML技术

第18章XML技术

教学目标

●理解XML数据类型的特点

●理解FORXML子句的作用

●理解XML索引

●理解OPENXML函数的特点

教学难点和重点

●理解XML数据类型的特点,掌握使用XML数据类型的方法和验证XML数据的技术。

理解FORXML子句的作用,掌握使用各种FORXML模式技术。

理解XML索引,掌握创建主XML索引和辅助XML索引技术。

理解OPENXML函数的特点,掌握将XML数据转变为行集数据的技术。

教学过程

●概述

●XML数据类型和查询

●使用FORXML子句

●其他XML技术

●上机实验

18.1概述

XML:

什么是XML?

●XML指可扩展标记语言(EXtensibleMarkupLanguage)

●XML是一种标记语言,很类似HTML

●XML的设计宗旨是传输数据,而非显示数据

●XML标签没有被预定义。

您需要自行定义标签。

●XML被设计为具有自我描述性。

XML与HTML的主要差异

XML不是HTML的替代。

XML和HTML为不同的目的而设计:

XML被设计为传输和存储数据,其焦点是数据的内容。

HTML被设计用来显示数据,其焦点是数据的外观。

HTML旨在显示信息,而XML旨在传输信息。

没有任何行为的XML

XML是不作为的。

也许这有点难以理解,但是XML不会做任何事情。

XML被设计用来结构化、存储以及传输信息。

下面是John写给George的便签,存储为XML:

George

John

Reminder

Don'tforgetthemeeting!

这个标签有标题以及留言。

它也包含了发送者和接受者的信息。

但是,这个XML文档仍然没有做任何事情。

它仅仅是包装在XML标签中的纯粹的信息。

我们需要编写软件或者程序,才能传送、接收和显示出这个文档。

上例中的标签没有在任何XML标准中定义过(比如)。

这些标签是由文档的创作者发明的。

这是因为XML没有预定义的标签。

在HTML中使用的标签(以及HTML的结构)是预定义的。

HTML文档只使用在HTML标准中定义过的标签(比如

等等)。

XML允许创作者定义自己的标签和自己的文档结构。

XML仅仅是纯文本

XML没什么特别的。

它仅仅是纯文本而已。

有能力处理纯文本的软件都可以处理XML。

不过,能够读懂XML的应用程序可以有针对性地处理XML的标签。

标签的功能性意义依赖于应用程序的特性。

XML不是对HTML的替代

XML是对HTML的补充。

XML不是对HTML的替代,理解这一点很重要。

在大多数web应用程序中,XML用于传输数据,而HTML用于格式化并显示数据。

对XML的最好的描述是:

XML是独立于软件和硬件的信息传输工具。

XML无所不在。

XML是各种应用程序之间进行数据传输的最常用的工具,并且在信息存储和描述领域变得越来越流行。

●MicrosoftSQLServer2005系统通过引入更多的功能增强了对XML数据的支持。

SQLServer系统提供了XML数据类型,可以用来存储XML数据。

XQuery和XSD(eXtensibleschemadefinition,可扩展的架构定义)支持这种XML数据。

并且这种XML数据与SQLServer2005关系型数据库引擎是紧密集成的。

例如,SQLServer2005提供了对XML触发器、XML数据复制、大容量的XML数据插入等操作的支持

18.2XML数据类型和查询

●XML数据类型是MicrosoftSQLServer2005系统为了增强对XML技术的支持而引入的新功能。

本节主要讲述XML数据类型以及与XML数据类型相关的XQuery查询、XML数据类型方法等技术。

XML数据类型

●就像INT、CHAR等数据类型一样,XML数据类型可以用在表中列的定义中、变量的定义中和存储过程的参数定义中。

XML数据类型既可以存储类型化数据,也可以存储非类型化数据。

如果存储在XML列中的数据没有与XSD架构关联,这种数据就是非类型化数据。

如果存储在XML列中的数据与XSD架构关联,那这种数据就是类型化数据。

当插入类型数据时,SQLServer2005系统将根据定义的XSD架构检查数据的一致性和完整性。

createtablebooks

bidintprimarykey,

binfxml

insertintobooksvalues

(1,

'

12345

java程序设计

234.4

'

insertintobooksvalues

(2,

'

12345

java程序设计

234.4

'

select*frombooks

XQuery技术

●XQuery是一种可以查询结构化或半结构化XML数据的语言。

由于MicrosoftSQLServer2005系统提供了对XML数据类型的支持,因此可以将XML文档存储在数据库中,然后使用XQuery语句进行查询。

XQuery基于现有的XPath查询语言,并且支持迭代、对结果排序以及构造必需的XML功能。

Transact-SQL支持XQuery语言的子集。

●使用XQuery技术可以从一个XML节点或多个节点中返回多个元素。

XML数据类型方法

●SQLServer2005系统提供了一些内置的可以用于XML数据类型的方法。

与普通关系型数据不同的是,XML数据是分层次的,具有完整的结构和元数据。

XML数据类型方法可以用于获取存储在XML数据类型中的XML文档的内容。

这些方法包括Exist方法、Modify方法、Query方法、Value方法等。

Query方法在前面一节中已经介绍过了,下面主要讲述Exist方法和Modify方法。

18.3使用FORXML子句

●使用FORXML可以把MicrosoftSQLServer2005系统的表中数据检索出来并且自动表示成XML的格式。

●在MicrosoftSQLServer2000版本中,FORXML有3种模式,即RAW、AUTO和EXPLICIT。

●在MicrosoftSQLServer2005系统中,由于增加了XML数据类型,因此也增强了FORXML的功能,这些增强功能包括TYPE模式、PATH模式、嵌套FORXML查询、内联XSD架构等。

下面详细介绍这些内容。

FORXMLRAW

●FORXMLRAW是最简单的FORXML模式,该模式将查询结果集中的每一行转换为带有通用标识符或可能提供元素名称的XML元素。

在默认情况下,行集中非NULL的每列值都将映射为元素的一个属性。

也就是说,RAW模式表示元素名称是row,属性名称是列名称或列的别名。

FORXMLAUTO

●使用FORXMLAUTO也可以返回XML文档。

不过,使用AUTO关键字和使用RAW关键字得到的XML文档形式是不同的。

使用AUTO关键字,MicrosoftSQLServer使用表名称作为元素名称,使用列名称作为属性名。

SELECT关键字后面的列的顺序用于确定XML文档的层次。

使用FORXMLEXPLICIT

●使用FORXMLEXPLICIT子句可以准确地得到用户需要的XML文档。

但是,FORXMLEXPLICIT子句和前面讲过的两个子句不同。

前面讲过的那些子句可以直接用在SELECT子句中,但是如果把FORXMLEXPLICIT子句直接用在SELECT子句中,就会产生如图18-20所示的错误消息。

●在使用FORXMLEXPLICIT子句时,必须增加两个数据列,即Tag数据列和Parent数据列。

使用TYPE指令

●由于SQLServer2005系统支持XML数据类型,因此可以通过指定TYPE指令,将FORXML查询结果返回为XML数据类型。

这样可以方便在服务器上对FORXML查询结果的处理。

使用FORXMLPATH

●作为一种新增功能,FORXMLPATH子句比FORXMLROW和FORXMLAUTO子句的功能强大,并且比FORXMLEXCPLICIT子句形成更加简单。

FORXMLPATH子句允许用户指定XML树状数据中的路径。

FORXMLPATH子句可以更加简单地实现FORXMLEXCPLICIT子句所能实现的功能。

嵌套的FORXML查询

●MicrosoftSQLServer2000系统限定FORXML子句只能用在查询语句的顶层,不能在子查询中使用FORXML子句。

MicrosoftSQLServer2005系统完善了这方面的功能,用户可以在子查询中使用FORXML子句,从而实现嵌套的FORXML查询。

内联XSD架构生成

●在FORXML子句中,可以请求在查询返回结果的同时返回一个内联架构。

如果需要返回XSD架构,可以使用XMLSCHEMA关键字。

需要注意的时,只能在RAW和AUTO模式中指定XMLSCHEMA,不能在EXPLICIT模式和PATH模式中指定内联XSD架构。

18.4其他XML技术

●在MicrosoftSQLServer2005系统中,除了前面讲过的XML技术之外,还可以在XML数据类型上定义索引和使用OPENXML函数从XML文档中返回关系型数据。

●下面主要介绍XML索引和OPENXML函数。

XML索引

●XML数据类型支持最大2GB的数据,这是一个相当大的数据。

当查询XML数据时,XML数据会对系统性能带来巨大的影响。

为了提高XML查询的性能,可以在具有XML数据类型的列上创建索引。

●XML索引可以分为两类,即主XML索引和辅助XML索引。

使用OPENXML函数

●前面已经提到过,使用FORXML可以把MicrosoftSQLServer系统中的数据生成XML文档,使用OPENXML则是使用FORXML的逆过程。

也就是说,使用OPENXML可以从XML文档中返回数据的行集。

18.5上机实验

●练习使用XML数据类型

●练习使用FORXML子句

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2