XML Schema 简介

简介:  XML Schema 与DTD(DTD语法概述)一样,也是对一类XML文档进行约束、确定其结构,元素、属性、及数据类型。及XML文档中所使用的元素,实体,元素的属性,元素与实体之间的关系的约束。XML Schema 首先由微软提出,已经被W3C接受成为一个标准。
 XML Schema 与DTD (DTD语法概述)一样,也是对一类XML文档进行约束、确定其结构,元素、属性、及数据类型。及XML文档中所使用的元素,实体,元素的属性,元素与实体之间的关系的约束。XML Schema 首先由微软提出,已经被W3C接受成为一个标准。与DTD不同的是,XML Schema 文件使用XML语法,它的设计目的很许多跟DTD相似,但在功能,扩展性方面超越了DTD。下面说说它们之间的一些区别:
   一.XML Schema 是XML文档,不像DTD有其特有的语法。对开发人员来说,你不需要懂两种语法就能编写一个格式良好的XML文档。对开发XML分析器来说,XML Schema 由于也是XML语法,实现及支持起来就更方便了。同时XML Schema 继承了XML可扩展的优点。
  二.定义数据类型。在一个DTD文件中只能把数据声明为字符串类型或字符串类型的子元素,如PCDATA、CDATA、ID等。而在XML Schema 中,可以定义跟编程语言同样丰富的数据类型,如整型,浮点型,布尔型,日期型等。这样的好处是显而易见的,在你编写程序使用一个整型数据时,如用DTD定义的,就必须将它从字符型转化为整型,而XML Schema 则可以直接定义为整型。
  三.XML Schema 是一个开放的模型。如下面的一个XML文档:
< item >
  
< name > TG/DT Latte </ name >
  
< quantity > 1 </ quantity >
  
< price > 2.00 </ price >
</ item >
下面是它的DTD及Schema描述:
DTD:
<! ELEMENT name (#PCDATA) >
<! ELEMENT quantity (#PCDATA) >
<! ELEMENT price (#PCDATA) >
<! ELEMENT item (name,quantity,price) >

schema:
< ElementType  name ="name" />
< ElementType  name ="quantity"  dt:type ="int" /> >
< ElementType  name ="price"  dt:type ="fixed.14.4" />
< ElementType  name ="item"  model ="open" >
  
< element  type ="name" />
  
< element  type ="quantity" />
  
< element  type ="price" />
</ ElementType >
当上面的XML文档增加一条<myItem:time>10:21 PDT</myItem:time>元素变为:
< item  xmlns:myItm ="urn:myItems" >
  
< name > TG/DT Latte </ name >
  
< quantity > 1 </ quantity >
  
< price > 2.00 </ price >
  
< myItem:time > 10:21 PDT </ myItem:time >
</ item >
以上的DTD将会引发一个验证错误,而Schema则不会。
四.命名空间的集成。一个XML文档只能由一个DTD文档来描述,而可以由多个XML Schema文档来描述。后者完全支持命名空间。
 以下是W3C关于XML Schema官方文档:
XML Schema Part 0
XML Schema Part 1
XML Schema Part 2                                                               
目录
相关文章
|
2月前
|
Kubernetes Cloud Native Java
Activiti 简介以及最新activiti依赖 pom.xml文件(使用时注意对应版本号)
Activiti 简介以及最新activiti依赖 pom.xml文件(使用时注意对应版本号)
49 2
|
2月前
|
XML 存储 JavaScript
XML 简介及用法详解
XML代表eXtensible Markup Language(可扩展标记语言)。XML是一种与HTML非常相似的标记语言。XML被设计用于存储和传输数据。XML被设计成具有自我描述性。XML不执行任何操作,也许有点难理解,但XML不执行任何操作
83 5
|
3月前
|
XML 存储 数据格式
什么是 XML 文件的 Schema
什么是 XML 文件的 Schema
30 0
|
1天前
|
XML JavaScript 数据格式
XML Schema(XSD)详解:定义 XML 文档结构合法性的完整指南
XML Schema(XSD)是用于定义XML文档结构的规范,它描述了元素、属性及其顺序、数据类型和约束。与DTD相比,XML Schema支持更多数据类型,如字符串、日期等,并且是基于XML的,允许扩展和重用。学习XML Schema有助于确保数据通信时双方对内容的理解一致,通过验证防止错误。示例展示了如何定义一个`note`元素,包含`to`, `from`, `heading`和`body`子元素,都是字符串类型。XML文档可以通过引用XML Schema进行验证,确保内容符合预设模式。
7 0
|
3月前
|
XML 存储 数据格式
xml简介
xml简介
9 0
|
4月前
|
XML Java 数据库连接
Mybatis之简介、使用操作(安装、XML、SqlSession、映射的SQL语句、命名空间、作用域和生命周期)
【1月更文挑战第2天】 MyBatis 是一款优秀的持久层框架 MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集的过程 MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 实体类 【Plain Old Java Objects,普通的 Java对象】映射成数据库中的记录。
112 2
Mybatis之简介、使用操作(安装、XML、SqlSession、映射的SQL语句、命名空间、作用域和生命周期)
|
5月前
|
SQL Java 数据库连接
Java【付诸实践 01】使用org.apache.ibatis.plugin.Interceptor拦截器实现全局mapper.xml参数注入(可用于切换数据库实例schema)源码实例分享
Java【付诸实践 01】使用org.apache.ibatis.plugin.Interceptor拦截器实现全局mapper.xml参数注入(可用于切换数据库实例schema)源码实例分享
41 0
|
11月前
|
XML 前端开发 数据格式
【XML】标准化DTD与Schema
【XML】标准化DTD与Schema
77 0
|
11月前
|
XML 数据格式
【XML学习 三】XML Schema原理及使用
【XML学习 三】XML Schema原理及使用
85 0
|
11月前
|
XML 存储 数据库
XML简介与创建
XML简介与创建