Xml的schema约束

schema开发过程

Xml的schema约束_第1张图片

1. schema约束

dtd语法:
** schema符合xml的语法,xml语句
** 一个xml中可以有多个schema,多个schema使用名称空间区分(类似于java包名)
** dtd里面有PCDATA类型,但是在schema里面可以支持更多的数据类型
* 比如 年龄 只能是整数,在schema可以直接定义一个整数类型
* schema语法更加复杂,schema目前不能替代dtd

2. schema的快速入门

Xml的schema约束_第2张图片
* 创建一个schema文件 后缀名是 .xsd
** 根节点
** 在schema文件里面
*属性
**xmlns=”http://www.w3.org/2001/XMLSchema”;
- 表示当前xml文件是一个约束文件
** targetNamespace=”http://www.itcast.cn/20151111”;
- 使用schema约束文件,直接通过这个地址引入约束文件
** elementFormDefault=”qualified”

步骤
        (1)看xml中有多少个元素
                           <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">

         ** 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 空格  约束文档的地址路径
eg:     
1.xsd

<schema xmlns="http://www.w3.org/2001/XMLSchema"; 
targetNamespace="http://www.example.org/1" 
xmlns:tns="http://www.example.org/1"; elementFormDefault="qualified">
<element name="person">
<complexType>
<sequence>
<element name="name" type="String">element>
<element name="age" type="int">element>
sequence>
complexType>
element>
schema>


<person xmlns:tns="http://www.w3.org/2001/XMLSchema-instance";
xmlns="http://www.example.org/1";
tns:schemaLocation="http://www.example.org/1 1.xsd">
<name>zhangsanname>
<age>20age>
<a>111a>//报错
person>

*<sequence>:表示元素的出现的顺序
<all>: 元素只能出现一次
<choice>:元素只能出现其中的一个
maxOccurs=”unbounded”: 表示元素的出现的次数//在type后面写
:表示任意元素

*可以约束属性
* 写在复杂元素里面
*写在 之前
--

- name: 属性名称
- type:属性类型 int stirng
- use:属性是否必须出现 required
Xml的schema约束_第3张图片



*复杂的schema约束
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.xsdhttp://www.example.org/department department.xsd
>

*引入多个schema文件,可以给每个起一个别名


<dept:name>100dept:name>
* 想要引入部门的约束文件里面的name,使用部门的别名 detp:元素名称

王晓晓

你可能感兴趣的:(JavaWeb)