首页>JAVA>正文

XML系列教程之Schema技术_上海尚学堂java培训技术干货

时间:2018-09-03 10:33:25   来源:上海尚学堂   阅读:
上一篇文章我们讲解了《XML系列教程之DTD技术_上海java培训技术干货》,大家可以点击回顾一下XML之DTD技术,本文在此基础上再讲述Schema技术。这篇文章能很好地系统地学习Schema技术。

一、Schema概念

Schema是用一套预先规定的xml元素和属性创建的,这些元素和属性定义了xml文档的结构和内容模式。Xml Shema规定xml文档实例的结构和每个元素/属性的数据类型。

理解:对于Schema来讲,我们可以将shema比喻成为是表结构。在表结构里,定义一些数据的限制要求。然后我们xml文档就相当于是数据表将来要存储的数据,也就是数据库里面的数据表数据了,所以整体来讲的话schema它就是用于验证xml文档的。

 

二、DTD 与Schema 特点比较

2.1 DTD的局限性

DTD不遵守xml语法(写xml文档实例时用一种语法,写DTD的时候用另外一种语法);
DTD数据类型有限(与数据库数据类型不一致);
DTD不可扩展;
DTD不支持命名空间(命名冲突)。

 

2.2 Schema的新特性

Shema基于xml语法的;
Shema可以用能处理xml文档的工具处理;
Schema大大扩充了数据类型,可以自定义数据类型;
Schema支持元素的继承——Object-Oriented;Shema支持属性组。

Schema约束作用与DTD一样,也是用于验证xml文档的有效性,只不过它提供了比DTD更强大的功能和更细粒度的数据类型,另外Schema还可以自定义数据类型。此外,Schema也是一个xml文件,而DTD则不是。所有的Schema文档,其根元素必须为Schema。

 

3、Schema文档结构

"1.0" encoding="utf-8" ?>
"http://www.w3.org/2001/XMLSchema"
           targetNamespace="http://www.myschema.com.cn"
           xmlns="http://www.myschema.com.cn"
           elementFormDefault="qualified">
    "person">
        
            
                "id" type="xs:integer"/>
                "name" type="xs:string"/>
                "sex" type="xs:string"/>
                "address" type="xs:string"/>
            

        

    
 
注:
xmlns:xs=http://www.w3.org/2001/XMLSchema:
schema 中用到的元素和数据类型来自命名空间 "http://www.w3.org/2001/XMLSchema"。

同时它还规定了来自命名空间 "http://www.w3.org/2001/XMLSchema" 的元素和数据类型应该使用前缀 xs:
targetNamespace=http://www.w3school.com.cn

显示被此 schema 定义的元素 (note, to, from, heading, body) 来自命名空间: " http://www.myschema.com.cn "。
xmlns= http://www.myschema.com.cn
     指出默认的命名空间是 "http://www.w3school.com.cn"。
elementFormDefault="qualified"
指出任何 XML 实例文档所使用的且在此 schema 中声明过的元素必须被命名空间限定。

xml 中使用schema 
"1.0" encoding="utf-8" ?>
"http://www.myschema.com.cn">
    1
    admin
    
    
绿地伯顿
 
所有schema 文档使用schema作为其根元素
构造schema的元素和数据类型来自http://www.myschema.com.cn命名空间。

 

四、Schema 数据类型

4.1 简单类型

4.1.1 内置数据类型

         基本数据类型
 


4.1.2 扩展数据类型

 
 
 

4.1.3  用户自定义简单类型(通过simpleType 定义)

 

4.2 复合类型(通过complexType 定义)

 
 

五、Schema 元素类型

5.1 Schema根元素

作用:包含已经定义的Schema
用法:
属性:xmlns 、targetNamespace、elementFormDefault
eg:
"http://www.w3.org/2001/XMLSchema"
           targetNamespace="http://www.myschema.com.cn"
           xmlns="http://www.myschema.com.cn"
           elementFormDefault="qualified">

 

5.2 element元素

作用:声明一个元素
属性:name/type/ref/minOccurs/maxOccurs
"person" > 

 

5.3 group 组元素

属性:name
"personData">
    
        "id" type="xs:integer"/>
        "name" type="xs:string"/>
        "sex" type="xs:string"/>
        "address" type="xs:string"/>
    
 

5.4 attribute元素

作用:声明一个属性
属性:name/type/use/default/fixed


今天我们就学到这里,下次我们在看看XML系列教程之XML解析技术,获取Java全套学习资料视频,请联系客服小姐姐。

还有一篇文章值得阅读:《XML的概念、特点与作用、XML申明_上海Java培训技术干货》,这是XML系列教程之XML基础知识,掌握XML基础能更好进行学习下面的XML的更深层次内容。

分享:0

电话咨询

客服热线服务时间

周一至周五 9:00-21:00

周六至周日 9:00-18:00

咨询电话

021-67690939
15201841284

微信扫一扫