XML schema的用法

本文介绍了XML Schema,它以XML语言为基础,可替代DTD。其作用是定义XML文档的合法组件群,如元素、属性等。相比DTD,它可扩展、内容丰富、支持数据类型和名称空间,于2001年成为W3C推荐标准,还给出示例说明使用情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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>

 

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

转载于:https://www.cnblogs.com/zhangchenliang/archive/2012/04/03/2430714.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值