XML(3)——认识Schema

2024-08-26 10:58
文章标签 xml 认识 schema

本文主要是介绍XML(3)——认识Schema,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

背景:最近发现自己的时间有点不够用,学习到的东西很多,可是总结的时间少得可怜,常常是学习完过好长一段段时间才有机会去总结。这不,这个XML视频两个星期前就看完了,现在才做总结,唉,时间呀……可怜。这个Schema又是一个新的名词,但和XML有联系,也算是旧知识了吧。


一、定义


描述XML文档的结构;

是基于XML的DTD替代者;
Schema也可称为 XSD(XML Schema Definition);

比DTD更强大。   



二、作用


     它的作用是定义一份XML文档的合法组件群,就像文档类型定义(外语缩写:DTD)的作用一样,一份XML Schema定义了:


◆ 可以出现在文档里的元素;
◆ 可以出现在文档里的属性;
◆ 哪些元素是子元素;
◆ 子元素的顺序;
◆ 子元素的数量;
◆ 一个元素应是否能包含文本,或应该是空的;
◆ 元素和属性的数据类型;
◆ 元素和属性的默认值和固定值。



三、优缺点


优点:

1、支持数据类型
XML Schema 最重要的能力之一就是对数据类型的支持。通过对数据类型的支持:
◆ 可更容易地描述允许的文档内容
◆ 可更容易地验证数据的正确性
◆ 可更容易地与来自数据库的数据一并工作
◆ 可更容易地定义数据约束(data facets)
◆ 可更容易地定义数据模型(或称数据格式)
◆ 可更容易地在不同的数据类型间转换数据


2、它使用 XML 语法
另一个关于XML Schema 的重要特性是,它们由XML编写。由XML编写XML Schema有很多好处:
◆ 不必学习新的语言
◆ 可使用 XML 编辑器来编辑 Schema 文件
◆ 可使用 XML 解析器来解析 Schema 文件
◆ 可通过 XML DOM 来处理 Schema
◆ 可通过 XSLT 来转换 Schema


3、可保护数据通信
◆ 当数据从发送方被发送到接受方时,其要点是双方应有关于内容的相同的"期望值"。
◆ 通过 XML Schema,发送方可以用一种接受方能够明白的方式来描述数据。
一种数据,比如 "03-11-2004",在某些国家被解释为11月3日,而在另一些国家为当作3月11日。
但是一个带有数据类型的 XML 元素,比如:<date type="date">2004-03-11</date>,可确保对内容一致的理解,这是因为 XML 的数据类型 "date" 要求的格式是 "YYYY-MM-DD"。


4、可扩展性
XML Schema 是可扩展的,因为它们由 XML 编写。通过可扩展的 Schema 定义,您可以:
◆ 在其他 Schema 中重复使用您的 Schema
◆ 创建由标准类型衍生而来的您自己的数据类型
◆ 在相同的文档中引用多重的 Schema


5、可捕获到错误
◆ 即使文档的形式良好,仍然不能保证它们不会包含错误,并且这些错误可能会产生严重的后果。
请考虑下面的情况:您订购的了 5 打激光打印机,而不是 5 台。通过 XML Schema,大部分这样的错误会被您的验证软件捕获到。


缺点:


◆ 虽然被写入XML是一个优势,在某些方面也是一个缺点。W3C XML Schema语言特别是可能非常冗长,而DTD可以简洁且相对容易编辑。
◆ W3C XML Schema没有实现大部分提供的数据元素到文档的DTD能力。

◆ IE不能验证XML是否符合Schema,需要通过专有的工具软件或者编程进行验证。



四、与DTD联系


◆ 是DTD的继承者,将来会取代DTD

◆ 可针对未来的需求进行扩展

◆ 更完整,功能更强大

◆ 基于XML编写

◆ 支持数据类型



五、心得体会


    说了这么多,其实就是一句话:Schema是基于XML的比DTD更强大的DTD的替代者。嘿嘿,简单吧,大道至简不过如此......




这篇关于XML(3)——认识Schema的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1108364

相关文章

MyBatis常用XML语法详解

《MyBatis常用XML语法详解》文章介绍了MyBatis常用XML语法,包括结果映射、查询语句、插入语句、更新语句、删除语句、动态SQL标签以及ehcache.xml文件的使用,感兴趣的朋友跟随小... 目录1、定义结果映射2、查询语句3、插入语句4、更新语句5、删除语句6、动态 SQL 标签7、ehc

Java中的Schema校验技术与实践示例详解

《Java中的Schema校验技术与实践示例详解》本主题详细介绍了在Java环境下进行XMLSchema和JSONSchema校验的方法,包括使用JAXP、JAXB以及专门的JSON校验库等技术,本文... 目录1. XML和jsON的Schema校验概念1.1 XML和JSON校验的必要性1.2 Sche

MyBatis的xml中字符串类型判空与非字符串类型判空处理方式(最新整理)

《MyBatis的xml中字符串类型判空与非字符串类型判空处理方式(最新整理)》本文给大家介绍MyBatis的xml中字符串类型判空与非字符串类型判空处理方式,本文给大家介绍的非常详细,对大家的学习或... 目录完整 Hutool 写法版本对比优化为什么status变成Long?为什么 price 没事?怎

MYSQL中information_schema的使用

《MYSQL中information_schema的使用》information_schema是MySQL中的一个虚拟数据库,用于提供关于MySQL服务器及其数据库的元数,这些元数据包括数据库名称、表... 目录关键要点什么是information_schema?主要功能使用示例mysql 中informa

python删除xml中的w:ascii属性的步骤

《python删除xml中的w:ascii属性的步骤》使用xml.etree.ElementTree删除WordXML中w:ascii属性,需注册命名空间并定位rFonts元素,通过del操作删除属... 可以使用python的XML.etree.ElementTree模块通过以下步骤删除XML中的w:as

XML重复查询一条Sql语句的解决方法

《XML重复查询一条Sql语句的解决方法》文章分析了XML重复查询与日志失效问题,指出因DTO缺少@Data注解导致日志无法格式化、空指针风险及参数穿透,进而引发性能灾难,解决方案为在Controll... 目录一、核心问题:从SQL重复执行到日志失效二、根因剖析:DTO断裂引发的级联故障三、解决方案:修复

Java对异常的认识与异常的处理小结

《Java对异常的认识与异常的处理小结》Java程序在运行时可能出现的错误或非正常情况称为异常,下面给大家介绍Java对异常的认识与异常的处理,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参... 目录一、认识异常与异常类型。二、异常的处理三、总结 一、认识异常与异常类型。(1)简单定义-什么是

SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志

《SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志》在SpringBoot项目中,使用logback-spring.xml配置屏蔽特定路径的日志有两种常用方式,文中的... 目录方案一:基础配置(直接关闭目标路径日志)方案二:结合 Spring Profile 按环境屏蔽关

mybatis的mapper对应的xml写法及配置详解

《mybatis的mapper对应的xml写法及配置详解》这篇文章给大家介绍mybatis的mapper对应的xml写法及配置详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,... 目录前置mapper 对应 XML 基础配置mapper 对应 xml 复杂配置Mapper 中的相

java中XML的使用全过程

《java中XML的使用全过程》:本文主要介绍java中XML的使用全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录什么是XML特点XML作用XML的编写语法基本语法特殊字符编写约束XML的书写格式DTD文档schema文档解析XML的方法​​DOM解析XM