码迷,mamicode.com
首页 > 其他好文 > 详细

XML Schema验证

时间:2015-02-07 18:43:16      阅读:212      评论:0      收藏:0      [点我收藏+]

标签:

一、什么事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定义)

  

  

XML Schema验证

标签:

原文地址:http://www.cnblogs.com/zhengcheng/p/4279092.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!