Schema模式简介

一、 Schema概述

在XML技术成为万维网推荐标准之后,DTD体现出的不少局限性,万维网协会又推出了用于描述、约束、检验XML文档的新方法:Schema(XML架构)。Schema也是用来定义XML文档、并利用该定义验证XML文档是否符合要求的一种技术。Schema对XML文档结构的定义和描述主要作用是用来约束XML文档,并验证XML文档有效性。

Schema文档中的元素通过使用element关键字来声明。元素声明定义了元素名称、内容和数据类型等属性。按照元素在Schema中的位置来分,在架构中处于“schema”根元素下的元素,称为“顶层元素”(Top-level elements)。在顶层元素下,包含更多的元素,这些元素和顶层元素一起使用。顶层元素包含以下几项内容。

(1)声明元素和属性(element、attribute和attributeGroup)。

(2)定义数据类型、元素组(complexType、simpleType和group)。

(3)声明表示法(notation)。

(4)注释文档(annotation)。

对XML的数据结构进行限制有两种方式:使用文档类型定义DTD(Document Type Definition)和XML Schema模式。

XML Schema模式是一个特殊的XML文件 XML Schema模式较DTD的一个最大的优势就是它能约束标记中包含的内容的数据类型 。

1、XML Schema模式是扩展名为“.xsd”的一个文本文件,使用XML语法来编写,保存时所选择的编码必须和所约束的XML文件一致

2   XML Schema模式的特点

XML Schema模式可以约束标记包含的文本的数据类型,这里所说的数据类型是指文本的表示形式。

比如,一个标记包含的文本被约束为int型,那么该标记包含的文本必须是由数字型字符组成。

3   根标记

XML Schema模式的根标记必须是schema,使用的名称空间必须是:

http://www.w3.org/2001/XMLSchema

名称空间的前缀是xsd。例如:

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">

… …

</xsd:schema>

4   元素标记

XML Schema模式用“element”标记来约束XML文件中的标记。“element”标记是XML Schema模式中根标记中最重要的子孙标记。

对于XML文件的中没有子标记的标记,XML Schema模式使用“简单类型”元素来给予约束。XML Schema中“简单类型”元素的格式为:<xsd:element name="标记名称" type="简单数据类型"/>

对于XML文件中有子标记的标记,XML Schema模式文件使用“复杂类型”元素来约束。XML Schema中“复杂类型”元素的格式为:

<xsd:element name="标记名称" >

<xsd:complexType>

… ….

</xsd:complexType>

</xsd:element>

5   属性标记

对于XML文件中的属性,XML Schema模式使用“attribue”标记来约束。

二、元素与属性

1、对于XML文件的中没有子标记的标记,即只有文本数据的标记,XML Schema模式可以使用内建的“简单类型”元素来约束。

<xsd:element name=“标记名称” type=“简单数据类型”/>

2、

对于XML文件中有子标记的标记,XML Schema模式使用“复杂类型”元素来给予约束。XML Schema中“复杂类型”元素的格式为:

<xsd:element name="标记名称" >

<xsd:complexType>

对子标记约束的元素

</xsd:complexType>

<xsd:element>

3、

对于XML文件中的属性,XML Schema模式使用“attribue”标记来约束,该标记的格式如下:

<xsd:attribute name=“属性名字” type=“基本数据类型” use=“条件” />

其中use可取值"required”、“optional”、“fixed”、“default”。

“attribue”标记必须在“复杂类型”元素中使用,指出“复杂类型”元素约束的XML标记应当有怎样的属性。

时间: 2024-10-10 13:16:53

Schema模式简介的相关文章

Java的MVC模式简介

Java的MVC模式简介 MVC(Model View Control)模型-视图-控制器 首先我们需要知道MVC模式并不是javaweb项目中独有的,MVC是一种软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图(View)和控制器(Controller),即为MVC.它是一种软件设计的典范, 一.MVC与模板概念的理解 MVC本来是存在于Desktop程序中的,M是指数据模型,V是指用户界面,C则是控制器.使用MVC的目的是将M和V的实现代码分离,从而使同一个

代理(Proxy)模式简介

一.代理(Proxy)模式简介 代理模式是结构型模式. 代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用. 代理对象要继承于抽象主题,并控制原对象的引用 二.简单例子 抽象主题类 package proxy; /* * 抽象主题 */ public abstract class Subject { /* * 请求方法 */ abstract public void Request(); } 真实主题类,继承抽象 package proxy; /* * 真实主题 */ publ

淘宝数据库OceanBase SQL编译器部分 源代码阅读--Schema模式

淘宝数据库OceanBase SQL编译器部分 源代码阅读--Schema模式 什么是Database,什么是Schema,什么是Table,什么是列,什么是行,什么是User?我们能够能够把Database看作是一个大仓库,仓库分了非常多非常多的房间,Schema就是当中的房间,一个Schema代表一个房间,Table能够看作是每一个Schema中的柜子,行和列就是柜子中的格子.User就是房间的主人.简单来说,Schema是包含表,列,索引,视图等数据库对象的集合. OceanBase中的强

工厂对象模式简介

工厂对象模式简介 在GoF的<设计模式>一书中,对Factory Method/Object Method 意图描述如下: 定义一个用于创建对象的接口,让子类决定实例化是哪一个类. Factory Metho是一个类的实例化延迟到其子类. 其结构图如下: 其中, 类 Product 定义了一类对象的接口. ConcreteProduct 实现 Product 的接口. Creator是工厂方法的包装器.ConcreteCreator 类实现Creator的接口.基于以上结构,每个Concret

淘宝数据库OceanBase SQL编译器部分 源码阅读--Schema模式

淘宝数据库OceanBase SQL编译器部分 源码阅读--Schema模式 什么是Database,什么是Schema,什么是Table,什么是列,什么是行,什么是User?我们可以可以把Database看作是一个大仓库,仓库分了很多很多的房间,Schema就是其中的房间,一个Schema代表一个房间,Table可以看作是每个Schema中的柜子,行和列就是柜子中的格子.User就是房间的主人.简单来说,Schema是包括表,列,索引,视图等数据库对象的集合. OceanBase中的强Sche

K8s Ingress 模式简介及示例

注: 默认本文读者具备一定的k8s基础,并对k8s的apiserver.service.controller manager等基本概念有所了解. 模式简介: Ingress在service之前加了一层ingress,结构如下: ingress -> service -> label selector -> pods www.ok1.com -> app1-service -> app1 selector -> app1 1234 Port:80 or other -&g

MVC模式简介

简介: 学习过基本Java Web开发的人都已经了解了如何编写基本的Servlet,如何编写jsp及如何更新浏览器中显示的内容.但是我们之前自己编写的应用一般存在无条理性,对于一个小型的网站这样的编写没有任何问题,但是一但我们需要编写大型的web工程的话,我们现有的编写模式会造成web应用的可扩展性较差,而且一但出现问题不能准确的定位出问题出在哪里. Java是一门应用设计模式比较广泛的语言.目前主流提出的23种设计模式均可在Java语言编写的程序中所应用.目前主流在Java Web应用中应用的

ASP.NET MVC 模式简介

为什么要学习ASP.Net MVC? MVC架构模式诞生30年后,因为其提供的良好的松耦合.易于扩展.高可维护性等优点,重新在开发社区火起来.作为微软全新的Web网站开发框架,ASP.NET MVC提供了全新的开发模式,完美支持经典的MVC架构模式.为.NET工程师提供了完全不同的开发体验. 越来越多的公司和开发者开始加入到MVC开发模式中来,使他进入了一个高速发展的状态,而现在MVC已经变成了ASP.NET下的一种常见的开发模式,它能让你学习一种完全不同的架构,所以这是我们有理由也有必要掌握的

微服务架构模式简介

转自 http://blog.jobbole.com/96948/ 在2014年,Sam Newman,Martin Fowler在ThoughtWorks的一位同事,出版了一本新书<Building Microservices>.该书描述了如何按照Microservice架构模式设计及搭建一个具有良好扩展性并可持续开发的系统.除此之外,该书还将基于该模式的系统演化流程与Continuous Delivery等当前甚为流行的开发流程结合在了一起,使得Microservice架构模式看起来非常具