Sql Server2005 XML体验

 

Sql Server.2005 XML体验

XML列与XML变量
1.
创建一个带XML列的表

Create table dbo.XmlTest(XmlTestID int,XmlTestName varchar(50),XmlTestMemo XML)

2.
XML表里插入数据
Insert into dbo.XmlTest     values(100,'Name1','<ROOT><XmlTest>300,zhuhui  street, Suzhou </XmlTest></ROOT>')

插入一个非法的XML,系统将会报错:


Insert into dbo.XmlTest values(1,' Name1','<ROOT><XmlTest>300,zhuhui  street,Suzhou ')
消息9400,级别16,状态1,第1

XML 分析: 1,字符41,意外的输入结尾

3 创建XML变量
Declare @xml xml

  无类型与类型化XML

无类型xml

xml文档不和任何模式关联,能以任何形式存储. 当我们向一个xml列插入数据时,应该有一个检查去判断插入的数据是否符合xml规范.

类型化

xml xml列与xml模式相关联,优点是 sql server会自动用模式来验证xml的有效性, xml占用的存储空间少,广域元素和属性的类型信息都由模式提供.

Xml模式

 1.  xml的模式须先存在库里,然后创建xml数据类型时提供schema用于对照数据格式,这就是类型化的xml

xml模式可以用下面的方法定义
CREATE XML SCHEMA COLLECTION [ <relational_schema>. ]sql_identifier AS Expression

·      Schema名称,未定义的话,就用缺省的schema

·      xml schema集合的sql标识

·      表达式,是字符串常量或变量,可以是如下类型 varchar, varbinary,       nvarchar, nvarbinary, or xml type.

示例创建xml模式集合


CREATE XML SCHEMA COLLECTION Xmltestschema AS '

<schema xmlns="http://www.w3.org/2001/XMLSchema">

<element name="root">

<complexType>

<sequence>

<element name="StreetName" type="string"/>

<element name="Company" type="string"/>

</sequence>

</complexType>

</element>

</schema>'

xml schema归档后,可通过xml_schema_namespace函数取的xml 数据类型实例


SELECT xml_schema_namespace(N'dbo',N'Xmltestschema')

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值