XML实用教程第3章.ppt_第1页
XML实用教程第3章.ppt_第2页
XML实用教程第3章.ppt_第3页
XML实用教程第3章.ppt_第4页
XML实用教程第3章.ppt_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

2009 10 11 1 XML实用教程 第3章 配合例子源代码一起使用 Powerpoint制作 耿祥义张跃平 有效的XML文件 2009 10 11 2 本章主要内容有效的XML文件怎样检查有效性DTD中的元素DTD中的属性约束列表内部DTDDTD与名称空间难点DTD中的属性约束列表DTD与名称空间 第3章导读 2009 10 11 3 规范的XML文件和有效的XML文件 规范性仅仅是XML语言的基本语法 没有对XML文件怎样组织数据进行具体的限制 在某些系统中 如果不对XML怎样组织数据进行合理的约束 尽管写出XML文件没有任何语法错误 是规范的 但此XML文件对系统而言是没有实际价值的 本章讲解有效的XML文件 2009 10 11 4 3 1有效的XML文件概述 对XML的数据结构进行限制有两种方式 使用文档类型定义 DocumentTypeDefinition DTD 和XMLSchema模式 一个规范的XML文件如果和某个DTD文件相关联 并遵守该DTD文件规定的约束条件 就称之为有效的XML文件 2009 10 11 5 3 1 1初识DTD DTD文件也是有着特殊结构的文件 简单地说 DTD文件是由元素所构成的文本文件 在DTD文件中 用关键字ELEMENT来定义一个元素 格式如下 2009 10 11 6 3 1 2DTD文件的保存 DTD文件需使用文本编辑器编写 保存 DTD文件的扩展名必须是 dtd 保存时所选择的编码必须和其关联的XML文件一致 比如 DTD所要约束的XML文件的编码为UTF 8 那么DTD文件也必须按着UTF 8编码保存 2009 10 11 7 3 1 3XML文件与DTD文件的关联 在XML文件中使用 文档类型声明 与一个DTD文件相关联 有两种形式的关联 SYSTEM和PUBLIC 使用SYSTEM文档类型声明的格式 使用PUBLIC文档类型声明的格式 例题3 2p32 2009 10 11 8 3 1 3XML文件与DTD文件的关联 在XML文件中使用 文档类型声明 与一个DTD文件相关联 有两种形式的关联 SYSTEM和PUBLIC 使用SYSTEM文档类型声明的格式 使用PUBLIC文档类型声明的格式 例题3 2p32 2009 10 11 9 3 2怎样检查有效性 当用浏览器打开一个有效的XML文件时 浏览器的XML解析器仅仅检查XML文件是否是规范的 检查XML所关联的DTD文件是否有语法错误 并不检查XML文件是否遵守该DTD规定的约束条件 我们可以使用DOM解析器来检查一个XML文件是否是有效的 有关DOM解析器将在第6章详细讲述 例题3 3p33 2009 10 11 10 3 3 1元素的定义 DTD中的元素 ELEMENT 是用来约束XML文件中的标记 在DTD中使用元素声明来定义一个元素 元素的声明格式为 例 3 3DTD中的元素 2009 10 11 11 3 3 2约束标记的子标记 如果想约束XML文件中某个标记可以有怎样的子标记 那么DTD中元素声明的 标记的约束条件 是用小括号括起的子标记列表 格式为注 子标记列表 中用逗号分隔列出的若干个标记是有先后顺序的 子标记列表 中若干个标记可以尾加模式限定符号来限定该子标记是否允许重复出现 出现的次数 例题3 4p36 子标记列表 的分项也可以是几个标记的 或运算 而且 或运算 必须用左 右小括号扩起 例题3 5p37 2009 10 11 12 3 3 3约束标记只包含有文本数据 如果准备约束一个标记没有子标记 也就是说只能有文本数据 那么 标记的约束条件 是用小括号括起的 PCDATA 格式如下 2009 10 11 13 3 3 4约束标记的混合内容 一个标记的内容可以有两部分构成文本数据和标记 其中的标记称做该标记的子标记 上面我们已经知道怎样使用DTD约束标记的子标记 比如约束 开车时间 只能有子标记 不能含有可显示的文本数据 如果允许标记的内容即可以有可显示的文本数据 也可以有子标记 那么在DTD文件中 元素的 标记的约束条件 是关键字 PCDATA 和若干个子标记的 或运算 而且该 或运算 必须用小括号括起并尾加一个 号 格式如下 例题3 6p39 2009 10 11 14 3 3 5EMPTY和ANY 如果准备约束一个标记是空标记 或者是只含有空字符的非空标记 元素的 标记的约束条件 可以是关键字 EMPTY 如果不准备对一个标记有任何约束 元素的 标记的约束条件 可以是关键字 ANY 例如 2009 10 11 15 3 4DTD的完整性 1 不允许无穷嵌套如果一个DTD元素约束某个标记可以出现某个子标记 那么对该子标记进行约束的DTD元素就不能约束该标记的子标记是它的父标记 2 XML文件中的每个标记都必须在DTD中有相应元素进行约束 2009 10 11 16 3 5 1ATTLIST属性约束列表 3 5DTD中的属性约束列表 DTD中的属性列表 ATTLIST 可用来约束XML文件中标记的属性 在DTD中属性列表的声明格式为 例题3 7p41在ATTLIST声明中 涉及到 属性名称 属性类型 和 默认值情况 其意义分别阐述如下 1 属性名称属性名称的命名规则和标记的命名规则相同 可以由字母 数字 下划线 点 或连字符 组成 但必须以字母或下划线开头 2 属性类型我们已经知道属性值一定是一个字符串 那么属性类型就决定了属性可以用怎样的字符串作为属性的值 3 默认值情况ATTLIST声明是为了约束XML文件中标记的属性 ATTLIST声明中关于属性的 默认值情况 是对XML文件中标记的属性进行约束的细节条件 2009 10 11 17 3 5 2属性的默认值 声明中包括 属性名称 属性类型 和 默认值情况 其中的 默认值情况 含有约束的细节条件 1 默认值情况 是字符串如果某个属性的 默认值情况 是一个字符串 XML中对应标记必须有该属性 但标记可以不明显地添加该属性 例 例题3 8p432 默认值情况 是 IMPLIED在ATTLIST定义的属性约束列表中可以设置属性的 默认值情况 是 IMPLIED 例 此时该属性就没有默认值 而且相应的标记里可以不附加该属性 3 默认值情况 是 REQUIRED在ATTLIST定义的属性约束列表中可以设置属性的 默认值情况 是 REQUIRED 例 此时该属性没有默认值 相应的标记必须要添加该属性并给出属性的值 4 默认值情况 是 FIXED在ATTLIST定义的属性约束列表中可以设置属性的 默认值情况 是 FIXED 例 此时该属性默认值就是关键字 FIXED后面指定的那个字符串 例题3 9p44例题3 10p45 2009 10 11 18 3 5 3属性类型 1 属性类型决定了属性可以用怎样的字符串作为属性的值 属性的常用类型有 CDATA Enumerated NMTOKEN NMTOKENS ID IDREF IDREFS1 CDATA类型对于CDATA CharacterData 类型的属性 该属性的值可以是任何一个字符串 但是 字符串中不能含有含有左尖括号 右尖括号 与符号 单引号和双引号 如果想使用这些字符 可以使用实体引用 例题3 11p462 Enumerated类型如果属性的类型是Enumerated类型 那么该属性只可以是枚举值 Enumerated不是关键字 是指类型定义的格式 其格式是将属性可以取的值用符号 分隔 Enumerated类型的定义格式如下 例题3 12p473 NMTOKEN类型如果属性的类型是NMTOKEN类型的属性 属性值可以由字母 数字 下划线 点 或连字符 组成 属性值中不能含有空格字符 属性值也可以用数字 点或连字符开头 例题3 13p48 2009 10 11 19 3 5 3属性类型 2 4 NMTOKENS类型对于NMTOKEN类型的属性 其属性值中不能含有空格 如果需要某个属性的属性值含有空格 而且被空格分隔开的子字符串符合NMTOKEN类型属性的属性值之规定 那么就可以将属性的类型取为NMTOKENS类型 例题3 14p495 ID类型如果希望某个属性的属性值具有专用性 即不允许其它类型相同的属性再取这个属性值 那么就可以将属性的类型取为ID类型 注意 ID类型的属性值可以由字母 数字 下划线 点 或连字符 组成 但必须以字母或下划线开头 注意 需要特别注意的是ID类型属性的 默认值情况 只能是 REQUIRED 和 IMPLIED 例题3 15p496 IDREF类型如果准备通过标记的属性值来判断标记之间的联系 就可以在标记中使用IDREF IdentifierReference 类型的属性 IDREF类型属性的属性值只能取某个标记中ID类型属性的属性值 例题3 16p507 IDREFS类型我们希望约束某个属性的属性值是若干个其它ID属性的属性值的组合 IDREFDS类型属性的属性值能满足这一愿望 对于IDREFS类型的属性 它的值可以是用空格分隔的若干个其它ID属性的属性值 例题3 17p52 2009 10 11 20 3 6内部DTD 可以把DTD文件的内容直接写在XML文件的内部 相对外部DTD文件 这样的内容称做XML文件的内部DTD在XML文件中 内部DTD用 结束 例题3 18p53注 同时使用外部DTD和内部DTD的格式 或例题3 19p54 2009 10 11 21 3 7IGNORE和INCLUDE IGNORE的作用是忽略DTD中的某些约束条件 而INCLUDE指令是包含某些约束条件 IGNORE指令的格式 INCLUDE指令的格式 例题3 20p55 2009 10 11 22 3 8DTD与名称空间 名称空间的定义必须在标记的 开始标记 里面 而且名称空间的定义必须放在开始标记中标记名字的后面 一个标记的开始标记里定义了名称空间 那么该名称空间的作用域是该标记及其所有的子孙

温馨提示

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

评论

0/150

提交评论