数据访问层设计_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.mzph.cn/pingmian/16882.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

算法训练营第四十一天 | LeetCode 509 斐波那契数列、LeetCode 70 爬楼梯、LeetCode 746 使用最小花费爬楼梯

LeetCode 509 斐波那契数列 这题动规五部曲都定义得比较明确。首先是dp数组下标,题目中给定F(0) 0说明从0开始,dp[i]直接表示F(i)的值即可。递推公式也直接给出了,也给了开头两个作为递推基础的数值作为初始化依据。遍历顺序也指明是从前往…

有哪些和excel类似或基于excel扩展的软件?

Workfine数字化管理平台是一款易上手、便捷、高效的数字化管理工具,是类excel设计,更容易上手进行企业业务系统的搭建,在信息记录和表格管理方面,比excel更简单易用,在这里,给大家挑几个点展示下~ 首先表格…

oracle碎片整理

1、move碎片整理 1) DECLARE tmp_val VARCHAR2 (500); BEGIN FOR REC IN (SELECT TABLE_NAME FROM USER_TABLES ) LOOP tmp_val:=ALTER TABLE || REC.TABLE_NAME || MOVE; BEGIN EXECUTE IMMEDIATE tmp_val; DBMS_OUTPUT.ENABLE(buffer_size => null); DBMS_OUTPUT.put_l…

一键恢复,U盘被删除文件方法分享

U盘是一种轻巧便携的移动储存工具,在日常的工作以及学习过程中,我们经常性会使用它来传输、备份、存储一些重要文件。然而,随着后期使用频率的增多,会在不同的设备上来回插拔,也就给里面存储文件带来了很大的隐患。比方…

I.MX6ULL的蜂鸣器实验-GPIO输出实验

系列文章目录 I.MX6ULL的蜂鸣器实验 I.MX6ULL的蜂鸣器实验 系列文章目录一、前言二、有源蜂鸣器简介三、硬件原理分析四、程序编写4.1程序编写前提工作4.2程序编写 五、编译下载验证5.1编写 Makefile 和链接脚本5.2编译下载 一、前言 在 I.MX6U-ALPHA 开发板上有一个有源蜂鸣器…

九宫格转圈圈抽奖活动,有加速,减速效果

在线访问demo和代码在底部 代码&#xff0c;复制就可以跑 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><tit…

SpringBootTest测试框架五

示例 package com.xxx;import com.xxx.ut.AbstractBasicTest; import com.xxx.ut.uttool.TestModel; import

Hive操作

–默认路径/user/hive/warehouse. 建数据库不可以指定路径 create database ods_housesys_db; 在ods_housesys_db中建表&#xff0c;指定表路径/user/hdpu/ods_housesys_db/ods_broker。 会自动创建ods_housesys_db/ods_broker两级路径。但是hdpu需要自己创建。 执行语句时要…

强化学习中model-free和model-based

强化学习中model-free和model-based 1.Model-Based 强化学习算法2.Model-Free 强化学习算法3.对比总结 在强化学习&#xff08;Reinforcement Learning, RL&#xff09;中&#xff0c;算法通常分为两大类&#xff1a;model-based 和 model-free。它们的主要区别在于是否显式地构…

Thingsboard规则链:GPS Geofencing Filter节点详解

​​​​​​​ 引言 GPS Geofencing Filter节点具体作用 使用教程 源码浅析 应用场景与案例 物流与运输 农业智能化 城市安全管理 结语 引言 在物联网技术迅速发展的今天&#xff0c;精准的位置服务已成为诸多应用不可或缺的一环。作为物联网平台的佼佼者&…

Python应用开发——30天学习Streamlit Python包进行APP的构建(2)

🗓️ 天 14 Streamlit 组件s Streamlit 组件s 是第三方的 Python 模块,对 Streamlit 进行拓展 [1]. 有哪些可用的 Streamlit 组件s? 好几十个精选 Streamlit 组件s 罗列在 Streamlit 的网站上 [2]. Fanilo(一位 Streamlit 创作者)在 wiki 帖子中组织了一个很棒的 St…

【机器学习】随机梯度下降算法以及优化

一、概述&#xff1a; 什么是梯度下降&#xff1f; 梯度下降法的基本思想可以类比为一个下山的过程。 假设这样一个场景:一个人被困在山上&#xff0c;需要从山上下来(i.e.找到山的最低点&#xff0c;也就是山谷)。但此时山上 的浓雾很大&#xff0c;导致可视度很低。因此&am…

【Postman接口测试】第一节.接口测试基础认识

文章目录 前言一、接口的基础 1.1 什么是接口 1.2 软件为什么需要接口 1.3 为什么要做接口测试二、接口测试的基础 2.1 接口测试介绍 2.2 接口测试的实现方式三、接口返回数据和JSON详解四、接口测试协议详解总结 前言 一、接口的基础知识 1.1 什么是…

出生率下降 幼儿园如何面对困境创新转型

从2023年开始&#xff0c;全国幼儿园生存发展问题成为教育界焦点&#xff0c;民办幼儿园更为焦虑满满。当今年轻人对待婚姻和生育的观念&#xff0c;的确让上一辈人始料未及。那么&#xff0c;是否幼儿园再也不可能回到巅峰时期了&#xff1f;是否很多幼儿教育者将无用武之地呢…

1+x(Java)中级题库易混淆理论题(二)

冷备份实质就是数据库相关文件的复制 System.in是字节流 Map集合中的key是无序的 protected不能用于修饰类 接口中所有抽象方法默认使用public修饰 DML操作有&#xff1a;INSERT UPDATE DELETE SQL 语句中进行 group by 分组时&#xff0c;可以不写 where 子句 使…

【Python设计模式03】简单工厂模式

简单工厂模式&#xff08;Simple Factory Pattern&#xff09;是一种创建型设计模式&#xff0c;它通过专门定义一个工厂类来负责创建其他类的实例&#xff0c;而不是在客户端代码中直接实例化对象。这样可以将对象创建的过程与使用对象的过程分离&#xff0c;提高代码的可维护…

【权威出版】2024年土木工程、抗震构造与材料技术国际会议(CSCMT 2024)

2024年土木工程、抗震构造与材料技术国际会议 2024 International Conference on Civil Engineering, Seismic Construction, and Material Technology 【1】会议简介 2024年土木工程、抗震构造与材料技术国际会议即将召开&#xff0c;这是一次集结全球土木工程、抗震构造与材料…

网络其他重要协议(DNS、ICMP、NAT)

1.DNS DNS是一整套从域名映射到IP的系统 1.1 DNS背景 TCP/IP中使用IP地址和端口号来确定网络上的一台主机的一个程序&#xff0c;但是IP地址不方便记忆&#xff0c;例如我们想访问百度就会在浏览器中输入baidu.com而不是百度的IP地址。于是人们发明了一种叫主机名的东西, 是…

瞄准金融行业的远控木马:SpyNote

Android 间谍软件是最常见的恶意软件之一&#xff0c;攻击者通过 Android 间谍软件来跟踪用户位置、检查 Web 浏览记录&#xff0c;甚至窃取敏感信息&#xff08;密码和信用卡号等&#xff09;&#xff0c;其对银行机构与客户构成的威胁与 Android 银行木马相媲美。间谍软件还可…

dubbo 无注册中心 通过url直接调用

1、依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4.0.0…