- 1、本文档共37页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
xml配置文件4,xml配置文件格式,xml,javaxml配置文件,xml文件格式,c#xml配置文件,配置文件,xml格式,xml配置,java读取xml配置文件
DTD定义与合法性 第4章 本章主要内容 文档类型定义(DTD) 文档类型声明 DTD的合法性 元素清单 元素声明 DTD中的说明 可在文档间共享的通用DTD 文档类型定义 DTD代表文档类型定义。一项文档类型定义应规定元素清单、属性、标记、文档中的实体及其相互关系。 DTD可以包括在它描述文档的文件中,或者与外部的URL相链接。这些外部DTD可以被不同文档和网站所共享。 文档类型定义 (续) DTD有助于不同的人们和程序互相阅读文件。 DTD可以在没有实际数据的情况下展现出页面上的不同元素是如何安排的。 用DTD还可以做更多的事。 文档类型声明 文档类型声明指定了文档使用的DTD。 文档类型声明出现在文档的序言部分,处在XML声明之后和基本元素之前,它可能包括文档类型定义或是标识文档类型定义所在文档的URL。 在有些情况下文档类型定义有内外两个子集,则文档类型声明可能同时包括以上两种情况。 文档类型声明(续) 带DTD的hello.xml 清单4-1 list\4-1.doc 文档类型声明(续) 带有DTD和样式单的Hello.xml 清单4-2 list\4-2.doc 根据DTD的合法性检验 合法文档必须符合DTD指定的约束条件。而且,它的基本元素必须是在文档类型声明中指明的。 清单4-3:不符合DTD规则的不合法的Hello XML list\4-3.doc 合法文档不允许使用任意的标记。使用的任何标记都要在DTD内声明。而且,必须以DTD允许的方式使用。 不是所有的文档都必须合法,也不是所有的语法分析程序都检查文档的合法性。事实上,多数Web浏览器都不检查文档的合法性。 根据DTD的合法性检验(续) 进行合法性检查的语法分析程序读取DTD并检查文档是否合乎DTD指定的规则。如果是正确的,则分析程序将数据传送到XML解析程序(如Web浏览器和数据库)。如果分析程序发现错误,它将报告出错。 在Web上可找到几十种不同的进行合法性检查的语法分析程序,其中多数是免费的。 根据DTD的合法性检验(续) RichardTobin的基于RXP的以Web为宿主的XML结构完整性和合法性检查程序 根据DTD的合法性检验(续) 检查清单4-3显示出的错误结果 根据DTD的合法性检验(续) 布朗大学提供的程序装载清单4-3 根据DTD的合法性检验(续) 布朗大学提供的程序装载清单4-3的检查结果 列出元素 要为一个文档创建适当的DTD,第一步是了解用DTD中定义的元素编码的信息结构。 所编写的DTD要为每个元素作元素声明。每一元素声明列出元素名和它的子元素。 列出元素(续) 清单4-4:需要编写DTD结构完整的XML文档 list\4-4.doc 表4-1:学生成绩统计中的元素 list\表4-1.doc 元素声明 ANY 元素声明(续) #PCDATA 清单4-5 list\4-5.doc 清单4-6 list\4-6.doc 清单4-7 list\4-7.doc 元素声明(续) 子元素列表 清单4-8:有两个KIND子元素的EDUCATION元素 list\4-8.doc 元素声明(续) 序列 用逗号隔开的一系列子元素称为一个序列 例如: 元素声明(续) 一个或多个子元素 在子元素清单的元素名后放一个加号(+)来说明有一个或多个子元素 例如: 元素声明(续) 零或多个子元素 在子元素清单中在元素名上附加一个星号(*) 例如: 元素声明(续) 零或一个子元素 在子元素列表后面附加一个问号(?) 例如: 元素声明(续) 完整的文档和DTD 清单4-9:一份合法的教育统计文档和DTD list\4-9.doc 清单4-10:另外一份符合教育DTD的合法的XML文档 list\4-10.doc 元素声明(续) 选择 在父元素声明中,可以使用管道符号——竖线(|)而不是逗号来分开子元素,以便指明文档作者需要输入一个或另一个子元素。 例如: 元素声明(续) 带括号的子元素 每一对括号把数个元素合为一个独立元素。括号内的元素可以作为独立元素嵌套在其他括号内。而且,还可以加上加号、逗号或问号作为后缀。你还可以将这些括号组合成更大的括号组合来构成复杂的结构。 例如: 元素声明(续) 混合内容 如果一个标记同时包含子元素和可析字符数据,那么该标记的内容就叫做混合内容。 例如: !ELEMENT SCHOOL (#PCDATA|SCHOOL_CITY|SCHOOL_NAME|STUDENT)* 带有可解析的字符数据的混合子元素会严重地限制文档的结构。 使用混合内容的最基本的理由是,当将老式的文本数据转换成X
文档评论(0)