数据访问层设计_4.灵活运用XML Schema

1.XML Schema

XML Schema用来描述XML文档合法结构、内容和限制。XML Schema由XML1.0自描述,并且使用了命名空间,有丰富的内嵌数据类型及其强大的数据结构定义功能,充分地改造了并且极大地扩展了DTDs(传统描述XML文档结构和内容限制的机制)的能力,将逐步替代DTDs,成为XML体系中正式的类型语言,同XML规范、Namespace规范一起成为XML体系的坚实基础。

2.XML Schema的组件

XML Schema由诸如类型定义和元素声明的组件组成,可以用来评估一个格式良好元素和属性信息的有效性。XML Schema是Schema组件的集合,这些组件分为三组:基本组件、组件和帮助组件。其中基本组件包括简单类型定义、复杂类型定义、属性声明和元素声明;组件包括属性组、完整性约束定义、模型组和符合声明;帮助组件包括注释、模型组、小品词、通配符和属性使用。Schema组件详细说明了抽象数据模型的每个组件的严格语义,每个组件在XML中的表示,一个XML Schema文档类型的DTD和XML Schema引用。

3.XML Schema规范

3.1 XML Schema规范的三个组成部分

XML Schema提供了创建XML文档必要的框架,详细说明了一个XML文档的不同元素和属性的有效结构、限制和使用类型。XML Schema规范由如下三个部分组成。

**(1)XML Schema Part0:Primer。**一个非标准化的文档,提供了XML Schema的一个简单可读的描述,目的是快速地理解如何利用XML Schema语言创建一个Schema(框架)。

**(2)XML Schema Part1:Structures。**这一部分详细说明了XML Schema定义语言,这个语言为描述XML1.0文档的结构和内容限制提供了便利,包括开发了XML Namespace(命名空间)的使用。

**(3)XML Schema Part2:Datatypes。**这一部分定义了可用于XML Schema和其它XML规范中的定义数据类型的XML1.0文档类型定义(DTDs)的一个超集。这部分提出了标准的数据类型内容集合,其中讲述了目的、需求、范围和术语。XML Schema与DTD相比,有其独特的特点,提供了丰富的数据类型,实现了继承和复用,与命名空间紧密联系,易于使用。

3.2XML Schema规范提供的数据类型

与DTD不同,XML Schema规范提供了丰富的数据类型。其中不仅包括一些内嵌的数据类型,如string、integer、Boolean、time和date等,还提供了定义新类型的能力,如complexType和simpleType。开发者可以利用内嵌的数据类型和用户定义的数据类型,有效地定义和限制XML文档的属性和元素值。

3.3支持继承

XML Schema支持继承是它的另一特点。可以利用从已经存在的Schema中获得某些类型而构造新的Schema,也可以在不需要时使获得的类型无效。同时,XML Schema能将一个Schema分成单独的组件,这样,在写Schema时,就可以正确地引用已经定义的组件。继承性使得软件复用更加有效,帮助开发者避免了每一次创建都要从零开始,极大地提高了软件开发和维护的效率。

XML Schema与XML Namespace紧密联系,使得在一个命名空间中创建元素和属性非常容易。这种联系简化了使用多个命名空间定义多个Schema的XML文档的创建和验证文档有效性。

相关推荐
power-辰南1 小时前
高并发系统架构设计全链路指南
分布式·系统架构·高并发·springcloud
晴空了无痕1 小时前
现代任务调度系统架构深度解析——以TaskSchedulerController为核心的弹性任务管理方案
unity·系统架构·游戏引擎
Nerd Nirvana2 小时前
软考—系统架构设计(案例 | 论文)
linux·系统架构·软件工程·软考·计算机基础
程序员古德2 小时前
《论云上自动化运维及其应用》审题技巧 - 系统架构设计师
系统架构·项目经验·软考论文·云上自动化运维·衡量指标·实践应用
南山十一少2 小时前
Spring Security+JWT+Redis实现项目级前后端分离认证授权
java·spring·bootstrap
427724004 小时前
IDEA使用git不提示账号密码登录,而是输入token问题解决
java·git·intellij-idea
chengooooooo4 小时前
苍穹外卖day8 地址上传 用户下单 订单支付
java·服务器·数据库
李长渊哦4 小时前
常用的 JVM 参数:配置与优化指南
java·jvm
计算机小白一个4 小时前
蓝桥杯 Java B 组之设计 LRU 缓存
java·算法·蓝桥杯
黑不溜秋的5 小时前
C++ 设计模式 - 策略模式
c++·设计模式·策略模式