1、 schmea约束
- dtd语法
<!ELEMENT 元素名称 约束> - 一个xml中可以有多个schema,多个schema由名称空间来区分(类似于java包)
- dtd里面只有PCDATA类型,但是在schema里面可以支持更多的数据类型
比如:年龄 只能是整数,在schema可以直接定义一个整数类型 - schema的语法更加复杂,schema目前不能代替dtd
2、schema快速入门
- 创建一个schmea文件 后缀名是 .xsd
根节点<schema> - 在schema文件里面
属性
xmlns="http://www.w3.org/2001/XMLSchema"
- 表示当前xml文件是一个约束条件
targetNamespace="http://www.itcast.cn/20151111"
- 使用schema约束条件,直接通过这个地址引入约束条件
elementFormDefault="qualified"
- 步骤
(1)看xml中有多少个元素
.xsd中就有多少个<element>
(2)看简单元素和复杂元素
** 如果复杂元素
<complexType>
<sequence>
<子元素>
</sequence>
</complexType>
(3)简单元素,写在复杂元素的里面
<element name="person">
<complexType>
<sequence>
<element name="name" type="string"></element>
<element name="age" type="int"></element>
</sequence>
</complexType>
</element>
(4)在被约束文件里面引入约束条件
<person xmlns:xsi="http:/www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.itcast.cn/20151111"
xsi:schemaLocation="http://www.itcast.cn/20151111 1.xsd">
- -instance表示被约束文件,schema文件将通过xmlns="http://www.itcast.cn/20151111"
将xml文件引入
xmlns:xsi="http:/www.w3.org/2001/XMLSchema-instance
- 表示xml是一个约束条件
xmlns="http://www.itcast.cn/20151111"
- 是约束文档里面的targetNamespace
xsi:schemaLocation="http://www.itcast.cn/20151111 1.xsd"
- targetNamespace 空格 约束文档的地址路径
- <sequence>:表示元素的出现顺序
- <all>:元素只能出现一次
- <choice>:元素只能出现其中一个
maxOccurs="unbounded":表示元素出现的次数
<any></any>:表示任意元素
可以约束属性 - 写在复杂元素里面
写在<complexType>之前
-- xml
<attribute name="id1" type="int" use=""required></attribute> - name:属性名称
- type:属性类别 int String
- use:属性是否必须出现 required
- 复杂的schema约束
<company xmlns = "http//www.example.org/company"
xmlns:dept="http//www.example.org/department "
xmlns:xsi="http//www.w3.org/2001/XMLSchema-instance "
xsi:schemaLocation="http//www.example.org/company company.xd http//www.example.org/department department.xsd"
- 引入多个schema文件,可以给每一个起一个别名
<enployee age="30">
<dept:name>100</dept:name>
<name>韩烨</name>
<>
网友评论