XML的约束:schema

来源:互联网 发布:淘宝处罚考试答案题库 编辑:程序博客网 时间:2024/05/18 20:51

1. schema约束:         

1.1*schema和DTD的对比(面试题):

1.schema符合XML的语法结构。        
2.可以解析schema文档。
3.schema对名称空间支持的好。                
4.schem支持更多的数据类型,自定义的数据类型。
1.2* 预先定义元素和属性
1.3 * schema的后缀名是.xsd
1.4* 只能有一个根节点,名称是schema。
            

2.开发步骤

2.1开发schema的约束文档

1* 引入W3C的名称

* 在根节点上,使用属性xmlns(xml namespace)

* xmlns="http://www.w3.org/2001/XMLSchema"

2* 定义元素

* <element name="书架"></element>

3* 判断是否是复杂还是简单的元素

 * 如果是简单    在element有属性    type="数据的类型"    
*  如果是复杂    
1.* 先声明标签是复杂的元素    <complexType>
2.* 子元素之间的关系    <sequence>

4* 起名:targetNamespace    目标名称空间(起名)

 值是任意的:http://www.itcast.cn/1110

5* elementFormDefault    :

* qualified(使用)    :质量好的

* unqualified              :质量不好的

2.2在XML文档中引入自己编写的schema文档

1.* 引入W3C名称空间,我是实例文档。

* xmlns="http://www.w3.org/2001/XMLSchema-instance"

2* 引入自己编写的schema的文档

* xmlns="http://www.itcast.cn/1110"

3.* 问题:元素上不能有相同的属性名称

1)* 解决:起别名        :aa
2)* 技巧:在下面出现标签的概率小起别名

4* 引入自己编写的schema文档的地址

* schemaLocation属性是W3C提供的,如果W3C名称空间要是有别名的话,先把别名写上。

xsi:schemaLocation="名称空间   schema文件的地址"

2.3 一个实例:

book.xsd

<?xml version="1.0" encoding="UTF-8"?><schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.itcast.cn/1110" elementFormDefault="qualified"><!-- 复杂元素 --><element name="书架"><complexType><sequence><element name="书"><!-- 复杂的元素标志标签 --><complexType><!-- 有顺序的 --><sequence><!-- 简单元素 --><element name="书名" type="string"></element><element name="作者" type="string"></element><element name="售价" type="double"></element><element name="简介" type="string"></element></sequence></complexType></element></sequence></complexType></element></schema>

book.xml

<?xml version="1.0" encoding="UTF-8" standalone="no"?><书架 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.itcast.cn/1110"xsi:schemaLocation="http://www.itcast.cn/1110 book.xsd"><书><书名>java-web开发大全</书名><作者>班长</作者><售价>99.8</售价><简介>这是不错啊</简介></书></书架>

2.4总结:


3.名称空间的概念

* 编写完schema文档,起唯一的名称空间。

* 在编写XML文档,通过xmlns来引入名称空间。



0 0