schema约束

schema约束     后缀名   .xsd

schema约束的出现是为了克服dtd约束的局限性

dtd的约束:

           1.只能引入一个dtd文件

           2.dtd支持的数据类型比较少(只有字符串)(schema支持更多的数据类型)

           3.DTD语法<!ELEMENT>       解析比较困难

schema约束和DTD约束的对比

     1.schema约束符合XML语法结构

     2.schema很容易被DOM,SAX解析技术解析

     3.schema对名称空间支持的非常好

     4.schema支持更多的数据类型,支持自定义数据类型

常用的数据类型是(查w3c文档)          xs:string      xs:decimal       xs:integer       xs:boolean     xs:date       xs:time

schema使用预先定义好的元素和属性,由W3C组织规定

schema约束文档的后缀名是   .xsd

schema约束文档也只有一个根节点,并且根节点名称就是<schema></schema>   不能改

 

开发思路:

1.W3C组织预先定义

2.schema约束,先引入W3C名称空间,再根节点上使用xmlns="http://www.w3.org/2001/XMLSchema"

3.xml文档,先引入schema名称空间,引入W3C的名称空间,来声明“我是一个实例文档”

开发步骤:

1.引入W3C的名称空间(值不用记)在根节点上使用xmlns属性

2.定义元素标签<element name="元素名称"  type="元素类型">

3.元素类型分类:

            简单类型:<element  name=""  type="">

            复杂类型:1.声明是复杂的类型     <complexType>

                              2.概述子节点的关系      <sequences>

4.调整顺序(把子节点放进父节点中)

5.定义属性  <attribute  name="属性名称"   

6.起一个名称空间的名称

                  再<schema>根节点上使用属性targetNamespace,值是唯一的,URI起名称

7.设置质量好的             qualified质量好的                    unqualified质量不好的

8.xml文件中:。1引入w3c的名称空间(声明文档是实例文档)      xmlns="W3C的"

                       。2引入自己定义schema文档的名称空间        xmlns="自己的"

                       。3元素名称上有了相同名称的属性,需要起别名,把标签出现次数少的起别名,因为起别名后,所有的标签需要写为   别名:标签名

                       。4引入自己定义schema文档的地址

schema约束文档
<?xml version="1.0" encoding="UTF-8"?>
<!-- 引入W3C
          定义自己的名称空间
          质量好的 -->
<schema xmlns="http://www.w3.org/2001/XMLSchema" 
targetNamespace="http://www.example.org/company" 
elementFormDefault="qualified">
	<!-- 公司元素 -->
	<element name="company">
	     <!-- 声明是复杂类型 -->
		<complexType>
		    <!-- 子节点的关系 -->
			<sequence>
				<!-- 员工元素 -->
				<element name="employee">
					<complexType>
						<sequence>
							<!-- 员工名字 -->
							<element name="name">
								<complexType>
									<simpleContent>
										<extension base="string"></extension>
									</simpleContent>
								</complexType>
							</element>
						</sequence>
						<!-- 为员工元素添加属性 -->
						<attribute name="age" type="int"></attribute>
					</complexType>
				</element>
			</sequence>
		</complexType>
	</element>

</schema>
xml文档
<?xml version="1.0" encoding="UTF-8"?>
<!-- 引入W3C名称空间
      引入schema约束文档名称空间
      schema约束文档的地址 -->
<company xmlns:xsi = "http://www.w3.org/2001/XMLSchema"
		xmlns = "http://www.example.org/company"
		xsi:schemaLocation="http://www.example.org/company company.xsd">

	<employee age="30">
		<name>xiao</name>
	</employee>


</company>

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值