已阅读5页,还剩48页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第3章有效的XML文件,2,章节结构,3.1有效XML文件的定义3.2如何检查有效性3.3DTD中的元素3.4DTD的完整性3.5DTD中的属性约束列表3.6内部DTD,3,eg.3-1.xml,国贸大厦08:30至18:30华联商场07:30至22:30,3-2.xml,国贸大厦08:3018:30华联商场07:3022:30,4,DTD与XML文档,为什么需要文档类型定义(DTD)?XML的核心是使用标记组织数据之结构,以便让信息的交互更加方便。规范性仅仅是XML语言的基本语法,没有对XML文件怎样组织数据进行具体的限制。在某些系统中,如果不对XML怎样组织数据进行合理的约束,那么对同一问题编写的XML文件,在数据组织结构上就可能有很大的不同。如何根据需要对XML文档进行限制?如何公布一个XML文档的结构?如何重用XML文档的数据?,5,DTD与XML文档,对XML的数据结构进行限制有两种方式:使用文档类型定义DTD(DocumentTypeDefinition)和XMLSchema模式。一个规范的XML文件如果和某个DTD文件相关联,并遵守该DTD文件规定的约束条件,就称之为有效的XML文件。,6,DTD与XML文档,什么是文档类型定义(DTD)?DTD描述了一个标记语言的语法和词汇表,也就是定义了可以在XML文档中出现的元素、这些元素出现的次序、它们可以如何相互嵌套以及XML文档结构的其它详细信息。DTD引入有效的XML文档一个“有效的”XML文档既是“格式良好”的,又必须遵守文档类型描述DTD中定义的种种规定。DTD:DocumentTypeDefinition,7,内部DTD,内部DTD:是在XML文档的内部分加入一个DTD描述。加入的位置是紧接在XML处理指示之后。语法:定义了一个文件,它以DOCTYPE中规定的根元素名作为其根元素的名字。,XML数据,8,eg.3-3.xml,张三001A公司zhang(010)62345678五街1234号北京市北京李四002B公司(021)87654321南京路9876号上海上海,9,外部DTD,外部DTD:将DTD置于XML文档之外的文件中。主要用于引用一个作者或组织所编写的众多XML文件中通用的DTD。语法:,XML数据,10,张三001A公司zhang(010)62345678五街1234号北京市北京李四002B公司(021)87654321南京路9876号上海上海,3-4.dtd:,eg.3-4.xml,11,公用DTD,公用DTD:是一个由权威机构制订的,提供给特定行业或公众使用的外部DTD。引用公共DTD的形式为:例:由多个双斜线组成。第一部分是所有者,第二部分是文本标识符,第三部分是文件使用的语言代码描述符。如果还有其它的描述则放在第四或第五部分。如果所有者没有注册,则第一部分为一连字符,其后是开发该DTD的公司名称,再其后是文本标识符,之后是语言代码描述符。,例:“-/W3C/DTDHTML4.0/EN”;“ISO12083:1994/DTDMath/EN”,12,定义元素及其后代,元素的声明:说明了每个XML文件中可能存在的元素,给出了元素的名字,而且给出了元素的具体类型。一个XML元素可以为空,也可以是一段纯文本,还可以有若干个子元素,而这些子元素同时又可以有它们的子元素。DTD正是通过元素之间的父子关系,描述了整个文件的结构关系。元素的命名形式为:XML文档内容是一树状结构,所以DTD中的元素声明包括如下两种:叶元素声明枝干元素声明,13,叶元素,叶元素:标记只包含有文本数据声明语法:eg.,DTD范例:,XML范例:张三,李逵男,14,枝干元素声明,DTD枝干元素声明语法:说明:子元素1等表示当前元素的下一级子元素子元素间用“,”分割开来。用“,”分割的子元素是有顺序的,输入时必须按定义顺序输入。一个元素在同一时间有且只能有一次出现,15,egDTD范例,egXML范例Larry89342324Beijingcity,16,eg3-5.xml,.这个DTD定义了一个XML文件,它只有一个根元素,名为“联系人列表”,这个元素可以有任何类型的子元素,也可以是纯文本,还可以为空。,17,有效的XML文档中的元素都应在DTD中声明。,eg.3-6-1.xml张三,X,18,eg3-6-2.xml,张三,此例定义了一个XML文件,它的根元素名为“联系人列表”。“联系人列表”中可以包含任何纯文本数据,也可以含有子元素。“联系人列表”中可以包含子元素“联系人”,也可以直接包含子元素“姓名”;“联系人”元素又可以包含自己的子元素,名为“姓名”;而“姓名”则只能包含纯文本数据,即#PCDATA。,19,ANY元素,所有元素都被设为自由的顺序,同时元素的数量也不限定,可以使用DTD中定义的所有元素为其子元素。语法:,20,eg3-7DTD范例,eg3-7XML范例Larry6388000JohnZhengzhouCity,21,元素,注意:除了根元素外,在定义其它元素时使用关键字ANY是不好的习惯。在DTD中定义元素时,顺序是无关紧要的。不能对不同的元素使用相同的元素名。定义元素及其子元素:DTD尽管要求严格,但也有它的灵活性。使用正则表达式,我们就可以描述父元素与子元素之间非常复杂的关系。下面就是描述子元素的正则式:,22,描述子元素的正则式,23,要求顺序的子元素,要求顺序的子元素语法:eg.,张三zhang,zhang张三,24,重复元素(+),重复元素DTD定义(+:至少出现一次)语法:eg.,张三zhangzhangzhang,25,出现任意次(*),元素出现任意次*:出现任意次语法:eg.,张三zhangzhangzhang,张三,26,可选子元素(?),可选子元素?:说明一个子元素是可选的,可出现,也可不出现语法:eg.,张三五街1234号北京市,张三,27,成组元素,成组元素:一组元素放在括号内DTD定义(元素组)语法:eg.3-7.xml,28,eg.3-7.xml成组元素:,张三zhang李四王五,29,OR或(|),|:描述了一个OR操作。语法:“|”具有排他性的或运算符,从多个选项中选取一个且只能选取一个出现eg.3-8.xml,30,eg.3-8.xml,张三zhang,张三63887291,31,注意:在一个组中,只允许使用一种连接符(例如“,”或“|”)。eg.下面这样定义的DTD是不合法的:,32,元素按内容分类,元素按内容可分为四类:ANY元素#PCDATA元素空元素混合元素,33,混合元素,混合元素:在一个元素中可能包含子元素,也可能包含纯文本。把这种元素称为混合内容的元素。语法:,34,eg.3-9.xml,张三(010)62345678zhang这是关于张三的信息,35,空元素,空元素:在一个元素中,既不包含任何子元素,也不包含纯文本。语法:eg.,36,PCDATA类型,只包含字符数据的元素。它代表“已编译的字符数据”(parsedcharacterdata)。PCDATA可以包含除保留字以外的一切字符,包括数字、字母和符号等。被定义为包含PCDATA的元素不能包含任何其他的子元素。语法:,37,eg.自我介绍的有效文档,ZhangSan6388000013666668888zhengzhouCity,38,元素的属性,在DTD中定义属性时,格式:其中:元素名:是属性所属的元素的名字;属性名:是属性的命名;属性类型:是用来指定该属性是属于十个有效属性类型中的哪种类型。默认值情况:是在没有特别说明属性时的取值,可定义也可不定义注意:ATTLIST是一个属性的列表,它可以包含很多属性的定义。,39,eg.,40,元素的属性,属性缺省值在DTD中定义的属性的缺省值可以分为以下四类:必须赋值的属性关键字REQUIRED说明XML文件中必须为这个属性给出一个属性值。属性值可有可无的属性当使用IMPLIED关键字时,不强行要求在XML文件中给该属性赋值,也无须在DTD中为该属性提供缺省值。固定取值的属性还有一种特殊情况,你需要为一个特定的属性提供一个缺省值,并且不希望XML文件的编写者把你的缺省值替代掉。这时候,就应该使用FIXED关键字,同时为该属性提供一个缺省值。定义缺省值的属性如果不使用上面任何一种关键字的话,就需要在DTD中为它提供一个缺省值。在XML文件中可以为该属性给出新的属性值来覆盖事先定义的缺省值,也可以不另外给出属性值,默认为采用DTD中给出的缺省值。,41,定义元素的属性(3),下面给出一个具体的例子:属性类型一个元素的属性可以为以下十种类型中的任意一种:1.CDATA6.ENTITY2.Enumerated7.ENTITIES3.ID8.NMTOKEN4.IDREF9.NMTOKENS5.IDREFS10.NOTATION,42,定义元素的属性(4),CDATA类型CDATA指的是纯文本,即由字符、符号“代替“我可不这么认为!为什么呢?,43,4-3定义元素的属性(5),枚举类型ENUMERATED属性也可以被描述为一组可接受的取值的列表,XML文件中对属性的赋值将从这个列表中选取一个值。这类属性属于枚举类型ENUMERATED,不过,关键字ENUMERATED是不出现在DTD定义中的。注意,在上面这个例子中,给属性“类型”定义的缺省值是“鸡肉”,所以“购物篮”中的第三个元素的“类型”属性取值为“鸡肉”。,44,4-3定义元素的属性(6),ID类型ID是用属性值的方式为文件中的某个元素定义唯一标识的方法。ID的值必须是一个有效的XML名称,不要给ID类型的属性事先指定缺省值,更不能使用FIXED型的缺省值。张三zhang李四,45,4-3定义元素的属性(7),IDREF类型IDREF类型允许一个元素的属性使用文件中的另一个元素的ID标识值作为该属性的取值。例如下面的例子:张三zhang李四li,46,4-3定义元素的属性(8),NMTOKEN和NMTOKENS类型NMTOKEN和NMTOKENS是诸多属性类型中面向处理程序的又一个类型。这两个类型用于指示一个有效的XML名称。例如可以通过NMTOKEN类型的属性来访问一个JAVA类等等。关于元素的定义:授权用户NMTOKENS#IMPLIEDXML片段:blahblahblah,47,4-3定义元素的属性(9),NOTATION类型NOTATION类型允许属性值为一个DTD中声明的符号,这个类型对于使用非XML格式的数据非常有用。现实世界中存在着很多无法或不易用XML格式组织的数据,例如图象、声音、影像等等。对于这些数据,XML应用程序常常并不提供直接的应用支持。通过为它们设定NOTATION类型的属性,可以向应用程序指定一个外部的处理程序。例如,当你想要为一个给定的文件类型指定一个演示设备时,可以用NOTATION类型的属性作为触发。要使用NOTATION类型作为属性的类型,首先要在DTD中为可选用的记号作出定义。定义的方式有两种,一种是使用MIME类型,形式是:再有一种是使用一个URL路径,指定一个处理程序的路径。,48,4-3定义元素的属性(10),在下面这个例子中,为电影元素指定了两种可选设备:一种是movPlayer.exe,用来播映.mov文件,另一种则用来绘制GIF图象。,49,4-4定义DTD实体(1),在第一章里曾介绍过一般实体。其实,DTD中可定义2种实体,即一般实体和参数实体。一般实体:分为内部一般实体和外部一般实体。内部一般实体的格式:外部一般实体的格式:一般实体的引用:例:外部一般实体定义addra.txtaddrb.txtfclml.dtd,50,4-4定义DTD实体(2),参数实体:与一般实体相同,参数实体既可以是内部的也可以是外部的。不过,参数实体只用在DTD中。参数实体的格式与一般实体很类似,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025贵州民航低空经济发展有限公司旗下企业招聘模拟笔试试题及答案解析
- 2025年合肥市第四十六中学招聘体育教师备考笔试题库及答案解析
- 广东江门台山市林业局招聘2人参考笔试题库附答案解析
- 2025南平市延平区国有资产投资经营有限公司招聘综合部业务员1人参考考试试题及答案解析
- 2025江苏省体育科学研究所招聘专业技术人员3人参考考试试题及答案解析
- 2025年12月广西玉林市陆川县城镇公益性岗位人员招聘1人备考笔试试题及答案解析
- 2025内蒙古呼伦贝尔市大学生乡村医生专项计划招聘3人模拟笔试试题及答案解析
- 2025华钛科技招聘99人考试备考题库及答案解析
- 2025河北兴冀人才资源开发有限公司招聘护理助理90人参考考试题库及答案解析
- 深度解析(2026)《GBT 25674-2010螺钉槽铣刀》(2026年)深度解析
- (12)普通高中技术与工程课程标准日常修订版(2017年版2025年修订)
- 标准厂房租赁合同范本模板
- QC知识测评考试试题(含答案)
- 2025年仲钨酸铵行业分析报告及未来发展趋势预测
- 螺栓强度校核课件
- 香薰蜡烛基础知识培训
- 混凝土及外加剂知识培训课件
- 1-视频交换矩阵
- 石化企业应急预案
- 船舶航次计划总结
- 2025-2026学年统编版一年级上册道德与法治教学计划
评论
0/150
提交评论