您现在的位置:首页 >> 前端 >> 内容

XMLSchema简介

时间:2017/7/13 14:02:51 点击:

  核心提示:XML Schema简介Schema的一般结构 !Schema name = Schema 名字 xmlns=命名空间元素和属性定义的具体内容 /SchemaSchema 具有两个属性。1. name...

XML Schema简介

Schema的一般结构

< !Schema name = “Schema 名字” xmlns=”命名空间”>

元素和属性定义的具体内容

< /Schema>

Schema 具有两个属性。

1. name属性置顶该Schema的名称,可以省略;

2. xmlns属性指定Schema文档中包含的namespace(命名空间)。在Schema中,一个XML文档中包含多个命名空间,一般在编写的时候,下面两句是必须写的:

xmlns= “urn: schemas-miscrosoft-com: xml-data”

xmlns: dt= “urn: schema-miscrosoft-com: datatypes”

第一个命名空间 是说明引用的 Miscrosoft Schema类型定义,指定本文档是一个 XML Schema文档。

第二个命名空间 是说明引用的Miscrosoft Schema的数据类型定义

这样在XML文档中可以使用在schema中定义过的数据类型。

Schema元素定义

在schema中可以加入各个元素的定义语句,元素的声明语法如下。

< ElementType name=”元素”

content= “{empty|textonly|eltonly|mixed}”

dt:type= “数据类型”

order= “{one|seq|many}”

model=”{open|closed}”

maxOccurs=”{0|1}”minOccurs=”{1|*}”>

< /Elementtype>

在之上的声明的语法表达中,涉及多种属性和元素的其他方面描述,下面对其含义进行详细的说明:

(1). 内容属性

一般来讲,一个元素最简单的Schema声明如下。

< elementType 元素/>

在这个声明格式中,没有指明元素的内容和数据类型,他们都取默认值。如果要指明元素的内容,则需要用到content 属性。例如:

< elementtype name=”A”content=”empty”/>

< /elementType>

Content说明内容属性,其可选的4种情况及含义参见表:

选项 含义

Empty | 表示元素的内容为 空

TextOnly | 表示元素中只能出现字符串

Mixed | 表示可以包含元素和已经分析的字符数据

Eltonly | 表示元素中只能包含子元素

(2). minOccurs 和 maxOccurs属性

minOccurs 和 maxOccurs 属性用来表示元素在该项中的最少和最多出现次数。如果省略不写则系统默认值为1.

除了这两种属性设置之外,还可以使用occurs属性进行设置。例如:

< element type=”B”occurs=”REQUIERED”/>

表示元素必须出现一次。其他修饰词包括:OPTIONAL表示可选出现(0或者1次),ONEORMORE,ZEROORMORE

(3). 元素的数据类型

dt:type这个属性用于指明元素文本的数据类型,在XML Schema中,内建的数据类型有20多种,可以分为两类: 基本类型 和派生类型。

string : 字符串

boolean : 布尔

number : 数值

dataTime :日期时间类型

binary : 二进制数据块

uri : 统一资源标识符号

integer : 整数 型,由number 派生

decimal : 小数,由number派生

real : 实数 由number 派生

date : 日期 由dateTime派生

time : 时间 由dateTime派生

timePeriod : 时间段 由dateTime派生

(4). 元素的顺序和分组

order 属性有3个,他们是seq、one、many。seq表示在Schema中定义的元素在XML 文档中出现的顺序必须和定义时候 是一致。one 表示单选。

< elementType name = “A”order=”one”>

< element type=”B”/>

< element type=”C”/>

< element type=”D”/>

< /elementType>

many、one、seq指明子元素可以有任意数量、任意顺序出现。

(5). model属性

选项 含义

open 表明该元素可以包含其他未在XML Schema中定义的元素和舒心

closed 表明该元素只能包含在本XMLSchema中定义过的元素和属性

*默认的model 属性取值为open*

Schema的属性声明

Schema用来定义属性的元素有两个:AttrbuteType 和attrbute。

< AttributeType

name=”属性名”

dt:type=”属性类型”

dt:value=”枚举值列表”

default=”默认值”

required=”{yes|no}”/>

含义如下:

name : 在属性定义中,属性名是必须的,声明该属性的类型的名称。在使用属性的时候要用属性名来引用属性

dt:type : 指定所声明的属性的数据类型吗属性类型的声明语句为: dt:type”属性类型”

例如 一个标号的属性声明,类型为ID,声明如下:

< Attrbutetype

标号

dt: type=“ID”

required=”yes”/>

dt:value:只有当type的值为enumeration的时候,才能使用。此时dt:value 需要列出所有的值

default : 指该元素默认取值

requored: 指定该属性对于引用它的元素是否为必须的。yes 表示必须。。。。。

最后,关于attrbute , AttrbuteType的关系: attrbute真正指明一元素具有哪些属性,AttributeType只是 起到声明 属性的作用

Tags:XM ML LS SC 
作者:网络 来源:leojuner的博
  • 上一篇:XMLDTD语法详解
  • 下一篇:元素样式的继承