- 1、本文档共51页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
使用DTD规范XML文档讲义
第3章 使用DTD规范XML文档 3.1 DTD基本概念 3.1.1 DTD简介 对XML文档所作的规范和约定被称为DTD,也就是文档类型定义。可以把DTD看作是编写某类XML文档的一个模板。 在一个DTD中,具体规定了引用该DTD的XML文档可使用哪些标记、父元素中能够包括哪些子元素、各个元素出现的先后顺序、元素可包含的属性、元素和属性值的数据类型,以及可使用的实体及符号规则等。 DTD由许多约定和声明语句构成,这些语句可以包含在XML文档内部,被称为内部DTD;也可以独立保存为一个文件,而称为外部DTD。 DTD主要具有下列几方面的作用: 可以验证XML文档数据的有效性。 可以为某类XML文档提供统一的格式和相同的结构。 可以保证在一定范围内,XML文档数据的交流和共享。 应用程序设计人员根据DTD就能够知道对应XML文档的逻辑结构,从而编写出相应的处理应用程序。 3.1.2 DTD的基本结构 在一份DTD中,包含了对XML文档所使用的元素、元素间的关系、元素可用的属性、可使用的实体等的定义规则。一份DTD实际上是若干条有关元素、属性、实体等定义和声明语句的集合。 书中的DTDDemo_01.xml是一个包含内部DTD声明的完整XML文档。 验证XML有效性 根据能否对XML文档进行约束模式校验,可以将解析器分为两类: 1.非校验解析器,如IE 2.校验解析器 编程校验XML文档的正确性 IE5以上的浏览器内置了XML解析工具:Microsof.XMLDOM,开发人员可以编写JavaScript代码,利用这个解析工具装载XML文件,并对XML文件进行DTD验证。 1.创建XML文档解析器对象 var xmldoc = new ActiveXObject(Microsoft.XMLDOM); 2.开启XML校验 xmldoc.validateOnParse=true; 3.装载XML文档 xmldoc.load(“book.xml); 4.获取错误信息 var reson = xmldoc.parseError.reason; var line = xmldoc.parseError.line; 编写DTD方式 DTD约束文档可以在XML中直接定义也可以单独编写(单独编写的DTD必须以UTF-8保存) 引入外部DTD 引入外部的DTD文档来约束当前的XML文档 有两种方式: 1 DTD文件在本地:!DOCTYPE 根元素名称 SYSTEM DTD文件的路径 !DOCTYPE 书架 SYSTEM “book.dtd 2 DTD文件在网络上:!DOCTYPE 根元素名称 PUBLIC DTD名称 DTD的路径URL !DOCTYPE struts PUBLIC -//Apache Software Foundation//DTD Struts Configuration 2.3//EN /dtds/struts-2.3.dtd 在DTD中可以包含下列各种声明语句: DTD声明开始语句 元素类型声明语句 属性列表声明语句 实体声明语句 注释语句 3.2 DTD对元素的声明 3.2.1 元素声明的语法 语法: !ELEMENT element_name element_definition 说明: !ELEMENT: 元素声明语句的开始,关键字ELEMENT必须大写。 element_name: 所声明的元素名称。 element_definition:对该元素内容的定义,用来规定该元素可以包含的内容。 例:!ELEMENT TITLE(#PCDATA) 3.2.2 各种元素的声明 1.基本字符元素的声明 2.含子元素的严格声明 3.包含任意内容的声明 4.子元素出现次数的声明 5.选择性子元素的声明 6.空元素的声明 7.混合型元素的声明 8.实体的声明 1.基本字符元素的声明 语法:!ELEMENT 元素名称 使用规则 !ELEMENT 元素名称 (#PCDATA) 指示元素的主体内容只能是普通的文本.(Parsed Character Data) 2.含子元素的严格声明 语法:!ELEMENT 元素名称 使用规则 !ELEMENT 元素名称 (子元素) (子元素):指示元素中包含的子元素 如果子元素用逗号分开,说明必须按照声明顺序去编写XML文档 !ELEMENT 元素名称 (子元素1,子元素2,子元素3,…) 3.包含任意内容的声明 语法:!ELEMENT 元素名称 使用规则 ANY:用于指示元素的主体内容为任意类型 !ELEMENT 元素名称 ANY 4.子元素出现次数的声明 语法:!ELEMENT 元素名称 使用规则 语法:!
文档评论(0)