--
--10.4.1节示例
--
XML数据类型列和变量
CREATE TABLE testTb
(
ID int PRIMARY KEY IDENTITY,
Name nvarchar(50) NOT NULL,
XMLCol XML NOT NULL --XML类型的列
)
GO
DECLARE @XML XML --XML类型的变量
SET @XML='<student>张三</student>'
insert into testTb values(N'张三',@XML)
--
--10.4.2节示例
--
--使用非类型化XML
CREATE TABLE XMLStudent
(
StuID int IDENTITY PRIMARY KEY,
StuInfo XML
)
GO
INSERT INTO XMLStudent --插入学生数据
VALUES(
'<Student>
<Name>何欢</Name>
<Sex>1</Sex>
<Birthday>1982-08-06</Birthday>
</Student>')
INSERT INTO XMLStudent --插入了课程数据
VALUES(
'<Course>
<Name>量子力学</Name>
<Score>4</Score>
</Course>')
--
--10.4.3节示例
--
--创建架构集合
CREATE XML SCHEMA COLLECTION StudentSchema AS '<?XML version="1.0" encoding="UTF-8" standalone="yes"?>
<xs:schema XMLns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:element name="Birthday" type="xs:date"/>
<xs:element name="Name">
<xs:simpleType>
<xs:restriction base="xs:string">
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Sex" type="xs:boolean"/>
<xs:element name="Student">
<xs:complexType>
<xs:sequence>
<xs:element ref="Name"/>
<xs:element ref="Sex"/>
<xs:element ref="Birthday"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>'
--
--10.4.4节示例
--
--创建类型化XML列的表
CREATE TABLE XMLStudent2
(
StuID int IDENTITY PRIMARY KEY,
StuInfo XML(StudentSchema) --使用XML类型的列并指定XML架构
)
测试类型化XML
INSERT INTO XMLStudent2 --插入学生数据成功
VALUES(
'<Student>
<Name>何欢</Name>
<Sex>1</Sex>
<Birthday>1982-08-06</Birthday>
</Student>')
GO
--以下插入了课程数据将报错:
--XML 验证: 找不到元素'Course' 的声明。位置: /*:Course[1]
INSERT INTO XMLStudent2
VALUES(
'<Course>
<Name>量子力学</Name>
<Score>4</Score>
</Course>')