标签:
一、什么事Schema(XSD)
XML Schema是微软定义的一套用来验证XML技术。是一套预先规定的XML元素和属性创建的,这些元素和属性定义了XML文档的结构和内容模式。
DTD的局限性:
1、DTD不遵循XML语法。
2、DTD的数据类型有限,与数据库类型不一致。
3、DTD不可以扩展。
4、DTD是不支持命名空间的。
Schema的优势:
1、Schema是一种XML语法结构,编写更加方便。
2、Schema可以支持数据类型。
3、Schema是可以扩展的。
4、Schema支持命名空间。
二、Schema文档结构
Schema文档本身是一个XML文档,所以必须满足XML文档结构。在每个Schema文档中必须包含一个根元素<xs:schema>。
<?xml version="1.0"?> <!--每个Schema中都必须包含xs:schema根节点,然后在根节点中定义内容!--> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.w3school.com.cn" xmlns="http://www.w3school.com.cn" elementFormDefault="qualified"> 定义内容 </xs:schema>
说明:
xmlns:xs="http://www.w3.org/2001/XMLSchema":显示 schema 中用到的元素和数据类型来自命名空间 "http://www.w3.org/2001/XMLSchema"。同时它还规定了来自命名空间 "http://www.w3.org/2001/XMLSchema" 的元素和数据类型应该使用前缀 xs:
targetNamespace="http://mynamespace/myschema" :显示被此 schema 定义的元素验证的XML来自的命名空间。
xmlns="http://www.w3school.com.cn" :指定默认的命名空间是 。
elementFormDefault="qualified" :指目标XML是否遵循本Schema,qualified表示遵循,unqualified表示不遵循。
三、在XML中引用Schema文档
<?xml version="1.0"?> <!--引用Schema文档--> <note xmlns="http://www.w3school.com.cn" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3school.com.cn note.xsd"> <to>George</to> <from>John</from> <heading>Reminder</heading> <body>Don‘t forget the meeting!</body> </note>
说明:
xmlns="http://www.w3school.com.cn" :规定了默认命名空间的声明。此声明会告知 schema 验证器,在此 XML 文档中使用的所有元素都被声明于 "http://www.w3school.com.cn" 这个命名空间。
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" :
xsi:schemaLocation="http://www.w3school.com.cn note.xsd":
四、Schema数据类型:
Schema中支持丰富的数据类型,可以简单分为简单类型和复合类型。
1、简单类型包括:
1)内置的数据类型。
a、基本的数据类型
数据类型 | 描述 |
string | 字符串 |
boolean | 布尔类型 |
decimal | 特定精度的数字 |
float | 单精度浮点数 |
double | 双精度浮点数 |
duration | 表示持续时间/日期格式 |
dateTime | 完整日期格式 |
time | 代表时分秒 |
date | 代表日期 |
b、扩展的数据类型
数据类型 | 描述 |
string | 字符串 |
boolean | 布尔类型 |
decimal | 特定精度的数字 |
float | 单精度浮点数 |
double | 双精度浮点数 |
duration | 表示持续时间/日期格式 |
dateTime | 完整日期格式 |
time | 代表时分秒 |
date | 代表日期 |
2)用户自定义的简单类型(通过simpleType定义)
2、复合类型(通过complexType定义)
标签:
原文地址:http://www.cnblogs.com/zhengcheng/p/4279092.html