当前位置: 首页 > news >正文

数据访问层设计_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文档的创建和验证文档有效性。

http://www.lryc.cn/news/354428.html

相关文章:

  • 【Linux安全】Firewalld防火墙基础
  • 先进制造aps专题八 基于ai大模型的ai超级应用,ai生管
  • Textual for Mac:轻量级IRC客户端
  • Facebook:连接世界,畅游社交之旅
  • 部署PIM-SM
  • 一分钟揭秘面试官真实意图,稳拿offer的面试秘诀!
  • 【源码】2024心悦搜剧源码百万级网盘资源
  • 燃数科技前端25-40K*14薪一面超简单,下周二面啦
  • 读人工智能时代与人类未来笔记14_管控人工智能
  • 高效并发编程:Java阻塞队列深度解析与最佳实践
  • 会话机制:Session
  • MySQL中, 自增主键和UUID作为主键有什么区别?
  • 机器人与AI:结合应用与未来展望
  • PyTorch学习笔记:新冠肺炎X光分类
  • 【Python】 XGBoost模型的使用案例及原理解析
  • Java中print,println,printf的功能以及区别
  • vue3+electron+typescript 项目安装、打包、多平台踩坑记录
  • 实际案例分析
  • JAVA实现图书管理系统(初阶)
  • 【Torch学习笔记】
  • LeetCode算法题:42. 接雨水(Java)
  • LINGO:存贮问题
  • 《微服务王国的守护者:Spring Cloud Dubbo的奇幻冒险》
  • (九)npm 使用
  • Thinkphp5内核宠物领养平台H5源码
  • 一、Elasticsearch介绍与部署
  • NL6621 实现获取天气情况
  • SpringCloud配置文件bootrap
  • 经典面试题:进程、线程、协程开销问题,为什么进程切换的开销比线程的大?
  • 鸿蒙 DevEco Studio 3.1 Release 下载sdk报错的解决办法