4、XML架构集合
来源:互联网 发布:苹果手机赚钱软件大全 编辑:程序博客网 时间:2024/04/29 16:29
11.4.1 什么是XML架构集合
在一个特定的XML应用中,往往需要用到不止一个XML架构信息来定义多个XML数据的格式。如何管理好这些XML架构就是非常现实的问题。
通常这些XML架构都是可以分类管理的,以用于不同的应用目的。令人高兴的是SQL Server 2005针对这种情况,提供了XML架构集合对象来管理不同类的XML架构数据。
在SQL Server 2005内部架构集合是一个类似于数据表的实体。因此可以创建、修改、删除XML架构集合。既管理XML架构集合。
下面将详细介绍如何实现对XML架构集合的管理。
11.4.2 创建XML架构集合
创建一个XML架构集合可以使用T-SQL语句。语法是
CREATE XML SCHEMA COLLECTION [ <relational_schema>. ]sql_identifier AS Expression
语法中relational_schema是一个可有可无的关系架构限定标识符。关于这个标识符的详细信息请参看本书前面的相关章节。sql_identifier要求一个合法的SQL Server标识符,用于表示新创建的架构集合的名称。Expression部分就需要一个比较完整的XML架构数据了。
下面看一个实际创建XML架构集合的例子。
CREATE XML SCHEMA COLLECTION MyXMLSchema
AS
'
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="books">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="book" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
'
11.4.3 修改XML架构集合
通常一个XML架构集合,在使用一段时间后都需要进行添加新的XML架构数据,以适应快速变化的商务需求。这就要求能够修改已创建的XML架构集合的数据。
具体的修改一个架构集合的语法如下所示:
ALTER XML SCHEMA COLLECTION [<relational_schema>.]sql_identifier ADD 'Schema Component'
语法中的元素要求与创建XML架构中的类似。需要注意的是此处sql_identifier所代表的XML架构集合是必须已存在的XML架构集合的名称。
下面的例子展示了如何向一个已存在的XML架构集合中添加一个新的XML架构数据。
ALTER XML SCHEMA COLLECTION MyXMLSchema
ADD
'
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="Journals">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Journal" type="xsd:string" maxOccurs="100"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
'
到这里如何修改一个XML架构集合就介绍完了。这里需要特别注意的是,不像其他对象的T-SQL语句,比如修改表的语句那样,XML架构集合修改语句是不存在Delete、或子Alter语句的。这说明只能向已存在的XML架构集合中添加新的XML架构数据,而无法删除或修改其中任何一个XML架构数据。
11.4.4 删除XML架构集合
最后来看看如何删除一个已存在的XML架构集合。删除XML架构集合的语法如下:
DROP XML SCHEMA COLLECTION [ relational_schema. ]sql_identifier
语法中的元素含义已明确不再赘述。
下面的例子展示了如何删除一个XML架构集合。
DROP XML SCHEMA COLLECTION MyXMLSchema
11.4.5 类型化与非类型化XML
知道了如何定义XML架构,以及XML架构集合,那么类型化和非类型化XML就好理解了。
所谓的类型化XML数据,就是指在定义时绑定了某一已定义的XML架构集合的XML数据。比如类型化的XML变量、类型化的XML列、类型化的XML参数等。下面的例子详细的展示了如何使用类型化的XML数据。
--定义一个XML架构集合
Create XML Schema Collection MyXMLSchema
As
'
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="books">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="book" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
'
go
--定义一个绑定到架构MyXMLSchema架构集合的XML变量
Declare @MyXML AS XML(MyXMLSchema)
--赋予结构正确的XML数据
Set @MyXML =
'
<books>
<book>电话号码大全</book>
</books>
'
--赋予不是MyXMLSchema指定格式的XML数据,
--虽然XML数据是正确的,但因为不符合定义,此时SQL Server会报错
Set @MyXML =
'
<Works>
<Work>张三</Work>
</Works>
'
在上面的例子中XML类型在定义时后面跟了一个括号,括号中指定了要绑定到的XML架构的名字。这就是类型化XML数据的使用方法。可以继续使用这一方法去定义类型化的XML列以及类型化的XML参数等。此处不在一一举例,读者可以自己新建查询进行验证。
11.4.6 查看库中的XML架构集合以及架构集合的详细内容
在SQL Server 2005中提供了可以查看XML架构集合的方法。下面的查询可以用来查看当前数据库中有多少个已定义的XML架构集合。
Select * from sys.xml_schema_collections
这个查询会返回当前库中所有XML架构集合在内的一个完整结果。其中包括系统预定义的XML架构集合。
如果要查看某个XML架构集合的详细定义,可以使用下面的系统函数。
SELECT xml_schema_namespace(N'',N'MyXMLType')
说明:此函数中第一个参数是XML架构集合所属的SQL Server架构的名称。没有指定时只需传递空字符串。第二参数就是想要查看的XML架构集合的名称。- 4、XML架构集合
- 4、XML架构集合
- SQL Server 2005学习笔记之 使用XML架构集合
- xml-了解 XML 架构
- 了解通用架构集合
- java集合架构
- java集合架构
- java集合架构详解
- java 集合Collection架构
- java 集合Map架构
- java 集合Set架构
- java集合架构详解
- [Java]集合架构分析
- android 集合架构
- Java集合架构
- java集合架构详解
- java集合架构详解
- 架构资源集合
- Android 网络图片显示
- ioctl
- C程序教学简案
- 乔布斯重视个人消费市场 忽视美政府需求
- Android异步加载图像小结
- 4、XML架构集合
- 第八章:用户模式下的线程同步
- POJ 1511 Invitation Cards (Spfa)
- 5、使用XQuery
- 乔布斯的告别
- 实例讲解Android中如何实现图片的异步加载功能
- 里氏代换原则
- 关于程序在内存中的分布
- 建立sysfs调试开关