博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
XML schema的用法
阅读量:5885 次
发布时间:2019-06-19

本文共 2225 字,大约阅读时间需要 7 分钟。

XML Schema是以XML语言为基础的,它用于可替代DTD。

  一份XML schema文件描述了XML文档的结构。
  XML Schema语言也被称为XML Schema Definition (XSD)(XML Schema定义).
  1.什么是XML Schema?
  XML Schema的作用是定义一份XML文档的合法组件群,就像DTD的作用一样,一份XML Schema:
  定义了可以出现在文档里的元素
  定义了可以出现在文档里的属性
  定义了哪些元素是子元素
  定义了子元素的顺序
  定义了子元素的数量
  定义了一个元素应是否能包含文本,或应该是空的
  定义了元素和属性的数据类型
  定义了元素和属性的默认值和固定值
  2.XML Schema 是DTD的“接任者”
  我们认为XML Schema很快就会替代DTD在大多数的网络应用程序中被广泛使用。
  XML Schema针对将来的额外内容是可扩展的
  XML Schema内容比DTD丰富,作用也更大
  XML Schema是以XML语言编写而成的
  XML Schema支持数据类型
  XML Schema支持名称空间(namespaces)
  3.XML Schema是W3C定义的标准
  XML Schema于2001年5月2日成为W3C推荐使用的标准

  在W3C 教程中你能阅读到更多关于XML Schema标准。

例如,我可以定义一个student的xml文档如下:

这是一个schema 文档的定义 student.xsd

 1<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
 2<!--W3C Schema 由 XMLSpy v2006 U 创建 (http://www.altova.com)-->
 3<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
 4    <xs:element name="student">
 5        <xs:complexType>
 6            <xs:sequence><!-- 以下的元素是顺序出现的-->
 7                <xs:element name="name" type="xs:string"/>
 8                <xs:element name="age" type="agetype"/>
 9                <xs:element name="sex" type="sextype"/>
10                <xs:element name="mobile" type="mobiletype"></xs:element>
11            </xs:sequence>
12        </xs:complexType>
13    </xs:element>
14    
15    <!--定义一个简单类型 年龄 使它的最大值和最小值在0--150之间-->
16    <xs:simpleType name="agetype">
17        <xs:restriction base="xs:int">
18            <xs:maxInclusive value="150"/>
19            <xs:minInclusive value="0"/>
20        </xs:restriction>
21    </xs:simpleType>
22    
23    <!--定义一个简单类型 列出两个枚举型,只能是男或女-->
24    <xs:simpleType name="sextype">
25        <xs:restriction base="xs:string">
26        <xs:enumeration value=""></xs:enumeration>    
27        <xs:enumeration value=""></xs:enumeration>        
28        </xs:restriction>
29        
30    <!--定义一个简单类型 列出正则表达式验证手机号码-->    
31    </xs:simpleType>
32    <xs:simpleType name="mobiletype">
33        <xs:restriction base="xs:string">
34        <xs:pattern value="13[0,2,9]\d{8}"></xs:pattern>
35        </xs:restriction>
36    </xs:simpleType>
37</xs:schema>
38

 

下面添加一个xml文件来引用这个schema:student.xml

 

1<?xml version="1.0" encoding="UTF-8"?>
2<student xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="D:\测试项目\XML_Traning\student.xsd">
3    <name>tomin</name>
4    <age>20</age>
5    <sex></sex>
6    <mobile>13242215110</mobile>
7</student>

 

这时候当出现任何一个子元素与定义的不同时,就会报错。

你可能感兴趣的文章
刘宇凡:罗永浩的锤子情怀只能拿去喂狗
查看>>
php晚了8小时 PHP5中的时间相差8小时的解决办法
查看>>
JS(JavaScript)的初了解7(更新中···)
查看>>
svn文件管理器的使用
查看>>
for/foreach/linq执行效率测试
查看>>
js /jquery停止事件冒泡和阻止浏览器默认事件
查看>>
[翻译]Protocol Buffer 基础: C++
查看>>
runloop与线程的关系
查看>>
[Bzoj2246]迷宫探险(概率+DP)
查看>>
详解消息队列的设计与使用
查看>>
使用Sqoop从mysql向hdfs或者hive导入数据时出现的一些错误
查看>>
控制子窗口的高度
查看>>
处理 Oracle SQL in 超过1000 的解决方案
查看>>
Alpha线性混合实现半透明效果
查看>>
chkconfig 系统服务管理
查看>>
ORACLE---Unit04: SQL(高级查询)
查看>>
贪食蛇
查看>>
201521123009 《Java程序设计》第11周学习总结
查看>>
Python3之多线程学习
查看>>
MVC和MTV结构分析
查看>>