DTD的局限:

1. DTD的语法与XMl不同,使用DOM,XPath,XSL无法处理,为自动化文档处理带来不便
2. DTD数据类型不能自由扩充,不利于XML数据交换场合验证
3. 所有元素、属性都是全局的, 无法声明仅与上下文位置相关的元素或属性
4. DTD中没有名称空间的概念,不直接支持名称空间

为什么要使用Schema?

第一,Schema符合XML的语法结构
第二,对名称空间的支持很好
第三,dtd里面有PCDATA类型,但是在Schema里面可以支持更多的数据类型


创建一个Schema文件

Schema文件就是一个xml文件,但是其后缀名为.xsd,文件必须有一个根节点,而且这个根节点的名称必须为schema
 

 
初始化的文件里面默认有这几个属性:
(1)xmlns=”http://www.w3.org/2001/XMLSchema”
表示当前文件是一个约束文件
(2)targetNamespace=”http://www.yuhang.site”
使用schema文件,直接通过地址引入schema文件
(3)elementFormDefault=”qualified”
 

步骤:

(1)看xml中有多少元素        <element>
(2)判断简单元素还是复杂元素
复杂元素:



<element name="元素的名称">
    <complexType>
        <sequence>
            子元素
        </sequence>
    </complexType>
</element>

<complexType>:表示是复杂元素
<sequence>:表示有顺序的
 
简单元素:


<element name="name" type="数据类型">
      文本值
</element>

简单元素需要写在复杂元素的里面
(3)在xml文件中引入schema


<person xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   <!-- 表示是一个被约束文件 -->
       xmlns="http://www.itcast.xn/20151111"    <!-- 约束文件中的targetNamespace值 -->
       xsi:schemaLocation="http://www.itcast.xn/20151111 schema.xsd">   <!-- targetNamespace + 空格 + 约束文档的地址 -->

看图:


 
 
 
 

您必须 登录 才能发表评论