1 Schema的介绍
dtd语法:<!ELEMENT 元素名称 约束>
schema符合xml语法,符合xml语法。
一个xml中可以有多个schema,只能有一个dtd。多个schema使用名称空间区分(类似于Java包名)。
dtd里面只有PCDATA类型,但是在schema里面可以支持更多的数据类型
|——比如年龄,只能是整数,在schema可以直接定义一个整数类型
由此可以发现schema语法更加严格。
schema语法更加复杂,schema目前不能代替dtd,两者共存。
2 Schema的开发过程
创建一个schema文件,后缀名是.xsd
。
|——根节点 <schema>
|——在schema元素里面
|——(1)属性:xmlns="http://www.w3.org/2001/XMLSchema"
,表示当前xml文件是一个约束文件
|——(2)属性:targetNamespace="http://www.itcast.cn/20151111"
,使用schema约束文件,直接通过这个地址引入约束文件
|——(3)属性:elementFormDefault="qualified"
步骤:
|——(1)看xml中有多少个元素,就定义多少个<element>
。
|——(2)看简单元素和复杂元素。如果是复杂元素,要用<complexType>
和<sequence>
元素的定义,示例如下:
<complexType>
<sequence>
子元素
<sequencs>
</complexType>
如果是简单元素,直接使用<element name="" type=""></element>
格式定义,属性name指被约束文件中元素名称,type指数据类型。
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.example.org/person"
xmlns:tns="http://www.example.org/person"
elementFormDefault="qualified">
<element name="person">
<complexType>
<sequence>
<element name="name" type="string"></element>
<element name="age" type="int" />
</sequence>
</complexType