




已阅读5页,还剩46页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第三章有效的XML文件 本章主要内容 什么是有效的XML文件怎样检查XML文件有效性XML文件与DTD的关联PUBLIC关联型SYSTEM关联型DTDDTD中的元素DTD中的属性DTD中的实体 XML声明例子 通过第二章的学习我们已经掌握了什么是规范的XML文件 由此可见规范的XML文件只是遵循了XML的基本语法 它并没有对XML文件怎样组织数据进行具体的限制 故对同一问题编写的XML文件 在数据结构上就可能有很大的不同 下面我们来看个例题 即只有符合W3C制定的基本语法规则的XML文件就成为规范的XML文件 例1 Time1 xml开车时间 20点58分例2 Time2 xml开车时间20点58分 对于上述的两个文件我们都会知道T28的开车时间 但是对于解析器 两个文件的数据结构是不同的 第一个文件中标记 T28 的内容只有文本数据 开车时间 20点58分 而第二个文件中标记 T28 不仅有文本数据 开车时间 还有子标记 hour 和 minute 解析器只有解析出子标记中的文本数据后 才能知道T28的开车时间 注 这里对空白区进行忽略 规范的XML文件 对怎样组织数据进行具体的限制 有效的XML文件 什么是有效的XML文件 对XML的数据结构的限制有两种方式 文档类型定义 DocumentTypeDefinition DTDXMLSchema模式两者区别 什么是有效的XML文件 什么是有效的XML文件 一个规范的XML文件如果和某个DTD文件相关联 并遵守该DTD文件规定的限制条件就称为有效的XML文件 FORMOREINFO DTD文件的编码必须与相关联的XML文件一致 当你保存文件时如果系统总是给你加上 txt 那你就要在文件名上加上双引号 XML文件与DTD的关联 关联的形式有如下两种SYSTEM关联SYSTEM关联表明所关联的DTD文件由个人或工作小组所定义且认可PUBLIC关联PUBLIC关联表明所关联的DTD文件已经得到某一领域的认可 是经过许多人讨论得到认可的DTD文件 XML文件与DTD的关联 SYSTEM关联型 SYSTEM关联型的文档类型声明格式例子 统一资源标识符 UniformResourceIdentifier URI必须是有效的资源 如果URI是一个文件的名字 该文件必须和当前的XML文件在同一目录下 如果不在同一目录下就要写清路径 如果是一个链接地址那么这个链接地址必须是可以访问的 XML文件与DTD的关联 PUBLIC关联型 PUBLIC关联型文档类型声明格式 FORMOREINFO 正式公用标识符 FormalPublicIdentifier FPI 格式 ISO认证 单位名称 DTD说明 所用语言 例子 注 FPI中不可以有非ASII码字符 DTD 初识DTD 例子 A dtd 下面我们来看一个简单的例子 约束XML文件中的根标记 学生 只可以有且必须两个子标记 小张 和 李四 约束XML文件中的标记 小张 只可以有且必须两个子标记 入学时间 和 毕业时间 约束标记 入学时间 和 毕业时间 只能有文本数据 不可以有子标记 PCDATA 表示已解析的文本数据 是指不含有左尖括号 右尖括号 与符号 单引号和双引号的字符序列或者是CDATA 例子 13点12分23点12分 08点45分19点36分 检查有效性 浏览器的XML解析器仅仅检查XML文件关联的DTD文件是否有语法错误 并不检查XML文件是否遵守该DTD规定的约束条件 DOM解析器检查XML文件的规范 DTD文件的语法 XML文件的引用 XML文件或DTD文件不存在等 DTD DTD中的元素 ELEMENT用来约束XML文件中的标记 在DTD中使用元素声明来定义一个元素 其格式为 例子 声明开始 元素名称 声明结束 元素声明开始 和 ELEMENT 中间不能有空格 声明结束 注 DTD文件中元素的作用与其在DTD文件中的书写位置无关 在DTD文件中不能使用多个元素约束同一个标记 即使它们的约束条件相同 DTD ELEMENT作用 规定标记的子标记限制标记只有文本数据规定标记的混合内容EMPTY和ANY ELEMENT作用 规定标记的子标记 约束的内容规定有那些子标记子标记是否允许重复出现子标记出现的顺序这些约束内容出现在DTD中元素声明的 标记的约束条件 部分 格式如下 ELEMENT作用 规定标记的子标记 格式例子另外我们还可以在子标记列表中的子标记后加限定符号 限定符号如下 子标记列表标记符 限定符号的标记必须出现一次或多次 限定符号的子标记可出现零次或多次 限定符号的子标记可出现零次或一次例子 使用这种约束条件的元素将约束XML文件中相应的标记只可以有子标记 不可以含有能显示的文本数据 子标记列表是由逗号分隔开的 每个标记称做它的一个分项 子标记在父标记出现的顺序是不能改变 04点58分 58分04点 ELEMENT作用 规定标记的子标记 子标记列表的分项也可以是几个标记的 或运算 他们必须用小括号扩起 例子 约束标记 应聘者 顺序地有三个标记 一个 姓名 标记 一个 本科 硕士 或 博士 标记 一个 男 或 女 标记 ELEMENT作用 规定标记的子标记 子标记列表标记符和 或运算 一起使用的例子 ELEMENT应聘者 姓名 奖励 处分 男 女 约束标记 应聘者 顺序地有若干个标记 一个 姓名 标记 多个 包括零个 奖励 或 处分 标记 一个 男 或 女 标记 ELEMENT作用 限制标记只有文本数据 如果准备约束一个没有子标记的标记 标记的约束条件 就用小括号括起来的 PCDATA 格式如下 关键字 PCDATA 约束标记的文本数据可以有普通字符 CDATA段内容 字符引用和实体引用 也可以是由一个空字符组成的文本数据 下列 hello 标记都是符合约束条件的标记 你好你好 你好hello ELEMENT作用 规定标记的混合内容 格式如下 例子 K83次特快列车20点36分07点12分 是指即可以有子标记也可以有文本数据 标记的约束条件是关键字 PCDATA 和若干个子标记的 或 运算 而且该 或运算 必须用小括号括起来并尾加一个 号 注 必须用 号结尾 PCDATA 子标记1 子标记2 子标记1 PCDATA 子标记1 子标记2 子标记1 PCDATA 子标记1 子标记2 子标记1 PCDATA 子标记1 子标记2 子标记1 请找出错误的原因 规定标记的混合内容注意事项 PCDATA和若干个子标记 或运算 或运算 必须用 扩起来 尾加一个 号 约束条件中不能使用限制符号文本数据可出现也可以不出现子标记可以出现零次或多次不能约束这些子标记出现的次数和顺序 PCDATA 子标记1 子标记2 子标记1 ELEMENT作用 EMPTY和ANY EMPTY约束一个空标记或只含有空字符的非空标记 则 标记约束条件 可以是关键字 EMPTY ANY不准备对一个标记有任何约束 则 标记约束条件 可以是 ANY 下列标记是否符合约束条件1 2 3 qwewe4 howareyou5 DTD的完整性 不允许无穷嵌套XML文件中的每个标记都必须在DTD中有相应元素进行约束 DTD中的属性 属性的使用原则一定要以不破坏稳当的结构为原则DTD中属性列表的声明格式 下面看个例子 是指标记的属性 可以为标记添加附加信息 是一个名值对 声明开始 不容许有空格 声明结束 DTD中的属性 例子 约束标记 软件楼 有三个属性 width height length 它们的类型是 CDATA 属性的默认值是字符串 100 20 150 注 对于有效的XML文件 对于标记中添加的每个属性 在DTD中都必须有相应的ATTLIST声明给予约束 DTD中的属性 属性三要素属性名称和标记的命名规则相同属性类型字符串 不含有 字符串区分大 小写属性默认值 字母 数字 下划线 点 连字符组成 以字母和下划线开头 区分大小写 DTD中的属性 属性的默认值 DTD中的属性 属性类型 声明属性的常用类型有 CDATA字符数据 即没有标记的文本Enumerated可选择的可能值列表NMTOKENXML名称标记NMTOKENS由空格分隔的多个XML名称记号ID不被文档中任何其他ID类型属性共享的唯一的名称IDREF文档中元素的ID类型属性的值IDREFS由空格分隔的元素的多个ID CDATA类型 对于CDATA类型的属性 该属性的值可以是任何一个字符串 但是字符串中不能含有五种特殊字符 如果想使用这些字符 可以使用字符引用和实体引用 Enumerated类型 如果属性的类型是Enumerated类型 那么该属性只可以取枚举出的值 这里要注意Enumerated不是关键字 而是指类型定义的格式 其格式是将属性可以取的值用符号 分隔 P52例9 属性值可以由字母 数字 下划线 点 或连字符组成 并允许数字字符开头 注 如果XML文件使用的是UTF 8编码 字母不仅包括通用的拉丁字abc等 也包括汉字 日文片假名 平假名 朝鲜文以及其他许多语言中的文字 NMTOKEN类型 属性的类型是NMTOKEN类型的属性属性值可以由字母 数字 下划线 点或连字符组成 属性中不能含有空格字符 属性值也可以用数字 点或连字符开头 NMTOKENS类型 我们知道NMTOKEN属性值中不能含有空白类字符 如果需要某个属性值含有空白类字符 那么就可将属性的类型取为NMTOKENS类型 ID类型 属性具有专用性 即不允许其他类型相同的属性再使用这个属性值 那么就可以将属性的类型取为ID类型 ID类型的属性值可以有字符 数字 下划线 点或连字符组成 但必须以字母或下划线开头 注意 ID类型属性的 默认值情况 只能是 REQUIRED 和 IMPLIED P55例12 IDREF类型 如果我们准备通过标记的属性值来判断标记之间的联系 就可以在标记中使用IDREF类型的属性 IDREF类型属性的属性值只能取某个标记中ID类型属性值 IDREFS类型 IDREFS类型是约束某个属性的属性是若干个其他ID属性值的组合 对于IDREFS类型的属性 它的值可以是用空格分隔的若干个其他ID属性的属性值 DTD中的实体 W3C允许我们在DTD文件中定义实体 然后与该DTD文件关联的XML文件可以通过实体引用使用实体 实体分为普通实体和参数实体 普通实体简称为实体 实体 实体是指可以被XML文件在标记的内容通过实体引用使用的实体 实体分为内部实体和外部实体 内部实体就是实体的内容已经包含在DTD文件本身中外部实体是指实体的内容是DTD文件以外的其他文件 内部实体的声明 格式 实体的内容是文本数据 不允许含有五种特殊符号 应使用预定义实体引用 XML文件可以使用 实体的引用 应用该实体 例子在XML中使用 hello 解析器解析数据时 首先将 你好 最后解析出的数据是 howareyou 你好 实体的引用和 之间不要有空格 外部实体的声明 定义 外部实体是指实体的内容是DTD文件以外的其他文件 外部实体的格式分为两种 SYSTEM格式和PUBLIC格式 SYSTEM格式是实体是一个外部文件 该外部文件由个人或工作小组所定义且认可 PUBLIC格式是实体是一个外部文件 该外面文件由已经得到某一领域的认可 外部实体的声明 SYSTEM格式PUBLIC URI必须是一个有效的资源 是一个文件名 该文件必须和当前DTD在一个目录中 如果是一个连接地址 该连接地址必须是可以访问的 FPI的格式 ISO认证 单位名称 说明 所用语言 FPI中不可含有非ASCII码字符 同样实体内容也不容许含有五种特殊字符 外部实体引用 XML文件用 解析器在解析数据时 将 java替换为文件 A java 的内容 例16 实体的可解析性 实体按可不可被解析分为 可解析实体同不可解析实体 可解析实体就是能被解析器解析的数据 不可解析实体就是解析器无法解析的数据 通常指二进制数据 DTD中的参数实体 定义 参数实体是在DTD文件中定义 只能由DTD文件本身通过实体引用使用参数实体 和关联的XML无关 优点 不仅可以方便DTD文件的编写 而切有利于DTD的维护 参数实体的声明格式 例 引用时形式 BOOK 必须是文本数据 不含有五种特殊字符 内部DTD 例 就是把 文件的内容直接写在XML文件的内部 称为内部的 开始 结束 内部DTD 如果内部的DTD和外部DTD文件同时限制了某个标记 就会导致错误 因为不能使用多个元素声明限制同一个标记 同时使用外部DTD和内部DTD的格式 例 IGNORE和INCLUDE IGNORE的作用是忽略DTD的某些约束条件INCLUDE指令是包含某些约束条件 名称空间复习 名称空间的声明在标记的 开始标记 里 放在开始标记中标记名字的后面 一个标记使用
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 品牌营销策划推广服务协议纲要
- 2025-2030中国隐私计算数据要素流通解决方案与合规框架
- 2025-2030中国长租公寓行业客户生命周期管理模型
- 2025-2030中国跨境电商DTC品牌社交媒体运营与红人营销效果监测
- 2025-2030中国租赁住房土地供应政策对公寓市场影响研究
- 2025-2030中国电竞产业生态构建与商业价值挖掘分析报告
- 2025-2030中国特种行业连接器产业政策环境与竞争策略评估报告
- 2025-2030中国海洋风电安装船装备技术升级与施工效率提升路径
- 2025-2030中国核电设备连接器安全规范与市场准入分析报告
- 2025-2030中国智能语音交互芯片端侧推理效率优化研究
- 锂电池实验室管理办法
- 学堂在线 新闻摄影 期末考试答案
- 统编版语文五年级上册 第一单元核心素养展示
- 患者出院健康指导
- 校本研修教学课件
- 物业客服部日常工作
- 宫颈癌的个案护理
- 一例外周静脉炎的护理个案讲课件
- 2025年云南省中考英语试卷真题(含标准答案及解析)
- 数字成瘾机制研究-洞察及研究
- 慢性便秘病人护理
评论
0/150
提交评论