第4章XDR(XMLSchema).ppt_第1页
第4章XDR(XMLSchema).ppt_第2页
第4章XDR(XMLSchema).ppt_第3页
第4章XDR(XMLSchema).ppt_第4页
第4章XDR(XMLSchema).ppt_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第4章XDR XMLSchema 主要内容 XMLSchema简介XMLSchema组件的细节XMLSchema组件的XML表达XMLSchema的数据类型 4 1XMLSchema简介 一 DTD的特点 DTD用一种完全不同于XML的特殊规范来定义XML中的各种符号 DTD的数据类型有限 DTD不支持名域 易与元素名发生冲突 因而一个XML文档只能与一个DTD文档相对应 无法规定元素的反复次数 尤其是表示某种闭区间特别困难 二 XMLSchema的特点XMLSchema即模式 有时也被困译为大纲 架构 其中以W3C组织的XSD XMLSchemaDefinition 和微软的XDR XMLDATAREDUCED 是最为著名 XMLSchema是用XML语法编写的 支持的数据类型更加丰富 XMLSchema支持名域 使一个XML文件可以对应多个SCHEMA文档 为什么使用XMLSchema 具有扩展性 XMLSchema本身是一份XML文件 它可以建立自己的数据类型 同时可使用多份XMLSchema验证XML文档 多种数据类型 可以像数据库一般 详细描述文档各元素的数据 且在不同的元素间轻松转换数据 XML语法 可与XML使用相同的编辑工具软件 三 其它的文档定义方式从Schema的第一个方案到现在为止 W3C成员共提交了5个Schema规范 XDR XMLDATAREDUCED DCD DocumentContentDescriptionforXML SOX SchemaforObject OrientedXML DDML DocumentDefinitionMarkupLanguage XSD XMLSchemaDfinition XMLSchema语言是由W3C指定的XMLSchema规范 简称为XSD XMLSchemaDefinition 2001年5月2日 XMLSchema规范成为了W3C的正式推荐标准 XDR由Microsoft公司提出 并不是W3C的标准 事实上已经被业界普遍认可 得到许多产品 MSBiztalkServer MSSQLServer2000 MSOffice2000和IE5 X 的广泛支持 现以介绍XDR为主 辅助介绍XSD 4 2XDR的指定 XML文档可以使用一个或多个XDR作为验证依据 并且可以分割到最小单位元素 因而可以在需要使用XDR的元素处 使用名域 具体见第5章 指定XDR文档范围与名域的范围相同 其具体语法为 元素名xmlns X Schema XDR文档的URI 例EX4 1 xml例EX4 2 xml 说明 实例中在根元素处用对XML文档的模式文档EX4 1 xml进行指定 在解析器进行解析时 会自动找到实例EX4 1 xml进行XML文档的有效性验证 4 3XDR语法细节 一 XDR的框架结构 说明 文档的第一条语句仍然是XML声明 Schema元素是XDR文档的根元素 并且只能以Schema元素作为其根元素 第二条语句中有一个name属性声明 它用来指定XDR文档的名称 可省略 两个名域声明 前者 默认名域 用来表示将引用微软的模式类型定义 后者 名域dt 用来指明XDR文档中将引用XDR中特有的数据类型 在以后使用XDR编写模式文件时 以上XDR框架结构是必需且固定的 二 属性声明和元素属性声明1 属性声明 AttributeType 其语法格式为 AttributeTypename 属性名称 required yes 或 no dt values 枚举值 default 默认值 dt type 数据类型 AttributeType 说明 AttributeType含有5个属性 name属性用来指定可在XML文档中出现的属性的名称 必须设置且不能重复 Required属性用来设置在XML文档中出现的属性是否必须设置 dt values用来限定在XML文档中出现的属性的取值范围 default用来设置在XML文档中出现的属性的默认值 即在不设置属性值的情况下属性的取值 dt type用来设置属性值的数据类型 其默认值为string 2 元素属性声明 attribute 其语法格式为 attributetype 属性名称 required yes 或 no default 默认值 说明 attribute是XDR文档中进行元素属性声明的元素 它含有3个属性 分别发挥不同的作用 type属性用来指定可在XML文档中出现的属性的名称 必须设置且不能重复 required属性用来设置在XML文档中出现的属性是否必须设置 yes 表示必须设置 no 表示可以设置也可以不设置 default属性用来设置在XML文档中出现的属性的默认值 即在不设置属性值情况下属性的取值 required属性和default属性必须搭配使用 表4 1required属性和default属性的搭配 例EX4 3 xml例EX4 4 xml 说明 在EX4 3 xml中声明了属性ID和zone 它们不属于任何元素 将属性ID指定给元素TeamName 其default的属性值将以 attribute 声明为准 即default C1 而required的属性值将完全遵循 AttributeType 声明中的限定 即required yes 所以它相当于DTD中的 FIXED默认值 在实例EX4 4 xml中不设置 在浏览时会自动补上 在EX4 3 xml中 声明将属性zone指定给元素Time 其default的属性值在 AttributeType 和 attribute 均未声明 即default未设置 而required yes 所以它相当于DTD中的 REQUIRED默认值 在实例EX4 4 xml中必须设置 注意 在使用声明属性时的有关required和default等属性的设置 在声明时可以改动 最终以声明为准 三 元素声明和子元素声明1 元素声明 ElementType ElementTypename 元素名称 content empty 或 textonly 或 eltonly 或 mixed model open 或 closed order one 或 seq 或 many dt type 元素内容的数据类型 ElementType 说明 name属性用来指定元素的名称 必须设置且不能重复 content属性用来设置元素的类型 其属性值的含义如表4 2所示 其默认值为 mixed model属性用来设置元素是否可以拥有额外的内容 如果为 open 则允许 如果为 close 则不允许 order属性用来设置元素中子元素出现的次序 其属性值的含义如表4 3所示 其默认值为 many dt type用来设置元素的数据类型 其默认值为string 表4 2content的属性值含义 表4 3order属性值含义 2 子元素声明 element 其语法格式为 elementtype 元素名称 minOccurs 0 或 1 maxOccurs 1 或 说明 element用来声明某元素为另一元素的子元素 type属性用来设置子元素的名称 必须设置且与某一 ElementType 的属性name的属性值相同 minOccurs属性用来设置于元素在XML文档中出现的最少次数 0 maxOccurs属性用来设置子元素在XML文档中出现的最多次数 注意 当属性minOccurs和属性maxOccurs都不设置时 其默认值为1 例EX4 5 xml例EX4 6 xml 说明 l 实例EX4 5 xml中用 ElementType 声明了Opponent TeamName Place Date Time Star StarName等元素 其中Opponent Star是父元素 包含有子元素 2 实例EX4 5 xml中用 element 声明TeamName Place Date Time StarName等子元素 为Star元素指定名为StarName的子元素 且子元素出现的次数不限 四 模型组和模型组定义在DTD中 出现了一种嵌套结构 即用小括号 将子元素括起来形成DTD的树状结构 XDR文档则是采用模型组 group 实现的 其语法格式为 grouporder one 或 seq 或 many minOccurs 0 或 l maxOccurs 1 或 group 说明 l group 声明某元素在XDR文档中还可包含其它子元素或其它信息 并且可以形成复杂的嵌套 选择以及混合结构 2 order 子元素出现的次序 其属性值的含义请参阅表4 3 其默认值为 many 3 minOccurs 设置子元素出现的最少次数 4 maxOccurs 设置子元素出现的最多次数 例EX4 7 xml例EX4 8 xml 说明 实例EX4 7 xml中用 group 来形成嵌套结构 使元素Opponent在元素CnGame下能出现至少一次 元素Star在元素Opponent下能出现至少一次 而元素Coach在元素Opponent下出现有且仅有一次 五 复杂类型定义 即定义一个包含多个子元素 多个属性以及多个模型组的元素 例EX4 9 xml例EX4 10 xml 说明 1 实例EX4 9 xml中使用了子元素声明和模型组声明 以便形成类似DTD的树状结构 2 实例EX4 9 xml中的有关声明 以上是一个属性组定义 一个元素定义多个属性是自然且合理的 4 4XDR的数据类型 一 数据类型体系XDR具有丰富的数据类型 可以对元素和属性的内容进行扩充 表达更广泛领域的数据要求 1 内建数据类型这类数据类型主要是为了兼容DTD中的数据类型 具体种类及含义如表4 4所示 表4 4XDR的内建数据类型 表4 5XDR支持的数据类型 1 表4 5XDR支持的数据类型 2 二 数据类型声明XDR中的两种数据类型声明方式 1 直接声明数据类型的直接声明 即在XDR标记 ElementType 或 AttributeType 中使用 dt type 属性直接进行数据类型声明 例EX5 11 xml例EX5 12 xml 说明 1 实例EX4 11 xml中 AttribuTypename ID dt type id required yes 声明了一个数据类型为 id 的属性 2 实例EX5 11 xml中 分别声明了数据类型为 i1 string date time 的元素 3 实例EX5 12 xml中各个元素和属性都应该满足数据类型的限定 否则在解析时将被判为有错 2 间接声明数据类型的间接声明即在XDR标记 datatype 中使用 dt type 属性间接进行数据类型声明 而标记 datatype 应该作为 ElementType 或 AttributeType 的子标记 例EX5 13 xml例EX5 14 xml 说明 1 实例EX5 13 xml中 声明了一个数据类型为 id 的属性 2 实例EX5 13 xml中 分别声

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论