第4章 DTD--检查XML文件有效性.ppt
《第4章 DTD--检查XML文件有效性.ppt》由会员分享,可在线阅读,更多相关《第4章 DTD--检查XML文件有效性.ppt(79页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第4章 DTD-检查XML文件有效性 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望DTD示例示例将其保存成将其保存成name.dtd新建一个新建一个XML文件,并关文件,并关联上此上此DTD文件后,文件后,出出现什么什么结果?果?name.xmlq对XML文档所作的文档所作的规范和范和约定被称定被称为DTD,也就是文档,也就是文档类型定型定义。可以把。可以把DTD看作看作是是编写某写某类XML文档的一个模板。文档的一个模板。4.1 DTD简介简介q在一个在一个D
2、TD中,具体中,具体规定了引用定了引用该DTD的的XML文文档可使用哪些档可使用哪些标记、父元素中能、父元素中能够包括哪些子元包括哪些子元素、各个元素出素、各个元素出现的先后的先后顺序、元素可包含的属序、元素可包含的属性、元素和属性性、元素和属性值的数据的数据类型,以及可使用的型,以及可使用的实体及符号体及符号规则等。等。qDTD由由许多多约定和声明定和声明语句构成,句构成,这些些语句可以句可以包含在包含在XML文档内部,被称文档内部,被称为内部内部DTD;也可以;也可以独立保存独立保存为一个文件,而称一个文件,而称为外部外部DTD。qDTD主要具有下列几方面的作用:主要具有下列几方面的作用:
3、q可以可以验证XML文档数据的有效性。文档数据的有效性。q可以可以为某某类XML文档提供文档提供统一的格式和一的格式和相同的相同的结构。构。q可以保可以保证在一定范在一定范围内,内,XML文档数据文档数据的交流和共享。的交流和共享。q应用程序用程序设计人人员根据根据DTD就能就能够知道知道对应XML文档的文档的逻辑结构,从而构,从而编写出写出相相应的的处理理应用程序。用程序。q在一份在一份DTD中,包含了中,包含了对XML文档所使用文档所使用的元素、元素的元素、元素间的关系、元素可用的属性、的关系、元素可用的属性、可使用的可使用的实体等的定体等的定义规则。一份。一份DTD实际上是若干条有关元素
4、、属性、上是若干条有关元素、属性、实体等定体等定义和声明和声明语句的集合。句的集合。q在在DTD中可以包含下列各种声明中可以包含下列各种声明语句:句:qDTD声明开始声明开始语句句q元素元素类型声明型声明语句句q属性列表声明属性列表声明语句句q实体声明体声明语句句q注注释语句句4.2 DTD的声明的声明qOne can refer to an external DTD in one of the following two ways:qSystem identifiersqPublic identifiersSystem identifiersqq示例:示例:qqq根标记的名称DTD文档URI
5、Public IdentifiersqThe syntax for FPIs:q-/Owner/Class Description/Language/Versionq根标记的名称DTD文档URIFPI4.3 DTD对元素的声明对元素的声明q语法:法:qq说明:明:q!ELEMENT:元素声明元素声明语句的开始,关句的开始,关键字字ELEMENT必必须大写。大写。qelement_name:所声明的元素名称。所声明的元素名称。qelement_definition:对该元素内容的定元素内容的定义,用来,用来规定定该元素可元素可以包含的内容。以包含的内容。元素内容的声明元素内容的声明q1基本字符元
6、素的声明基本字符元素的声明q2含子元素的严格声明含子元素的严格声明q3包含任意内容的声明包含任意内容的声明q4子元素出现次数的声明子元素出现次数的声明q5选择性子元素的声明选择性子元素的声明q6空元素的声明空元素的声明q7混合型元素的声明混合型元素的声明q8实体的声明实体的声明规定标记的子标记规定标记的子标记q如果元素如果元素拥有有多多个个子元素,子元素,括号括号的子元素的子元素列表列表需需要使用要使用“,”分隔分隔,例如:例如:“开开车时间”元素元素拥有有子元素子元素hour和和minute,如下所示:,如下所示:qq则对应的的xml文件文件实例如下:例如下:04点点58分分What is
7、wrong?qEven when an element is used in multiple content models,you should only declare it once.qThis declaration indicates that the parent element must have exactly these children which must appear in the distinct order.58分04点限定次数限定次数q如果相同的子元素如果相同的子元素能能够重复重复,我我们需要需要进一步的使用一步的使用符号符号宣告各子元素宣告各子元素出出现的次的次
8、数数:q+:尾加:尾加该限定符号的子限定符号的子标记必必须出出现一次一次或多次;或多次;q-:尾加:尾加该限定符号的子限定符号的子标记必必须出出现零次零次或多次;或多次;q?:尾加:尾加该限定符号的子限定符号的子标记必必须出出现零次零次或一次;或一次;q|:子:子标记中的一中的一项。子元素只子元素只出出现一次一次q如果元素如果元素名称后没有名称后没有加上任何加上任何符号符号,表示,表示子元素只能子元素只能出出现一次,如下所示:一次,如下所示:q上述上述book元素只元素只会出会出现一个一个code、title、authorlist和和price子元素,如果子元素,如果XML文件文件拥有两个有两
9、个title元素就不符合元素就不符合DTD的的定定义。子元素最少子元素最少出出现一次一次q如果子元素最少如果子元素最少出出现一次,而且可能一次,而且可能出出现很多次,很多次,此此时请在元素在元素后后加加“+”符号符号,如,如下所示:下所示:q上述上述booklist元素的子元素元素的子元素book最少最少一个一个。子元素子元素出出现零或多次零或多次q如果子元素可能如果子元素可能没有没有或有很多或有很多个个,此此时请在元素在元素后后加上加上“*”符号符号,如下所示:,如下所示:q上述上述note元素可能元素可能没有没有子元素子元素message,也,也可以有一或多可以有一或多个个。子元素子元素出
10、出现零或一次零或一次q子元素是子元素是个个选项,有或,有或没有没有,此此时请在元在元素素后后加上加上“?”符号符号,如下所示:,如下所示:q上述上述note元素可能元素可能没有没有子元素子元素message,也,也可以只有一可以只有一个个。子元素子元素列表列表之一之一q如果子元素有多如果子元素有多种种选择,可能,可能为任何一任何一个个的多的多选一,一,此此时各元素各元素名称名称请使用使用“|”符符号号分隔,如下所示:分隔,如下所示:子元素子元素列表列表之之二二q选择符号也可以和其他限定符号符号也可以和其他限定符号联合使用合使用,如下所示:如下所示:q上述上述note元素的子元素元素的子元素me
11、ssage最少最少出出现一一次,或是次,或是table和和image二二选一,而且一,而且允允许出出现零或多零或多个个。规定定标记只有文本数据只有文本数据q如果一个如果一个标记可以由两部分内容构成:文可以由两部分内容构成:文本数据和本数据和标记,对于于规定定标记的混合内容的混合内容q如果文字如果文字资料料#PCDATA仍然包含有其它仍然包含有其它标记,此此时DTD定定义的元素的元素内容属于一种内容属于一种混混合合内容内容,如下所示:,如下所示:q上述上述message元素可以是文字元素可以是文字资料料,其中,其中拥有有quote子子标记和和b子子标记。混合内容混合内容语法法错误:q(#PCDA
12、TA|子子标记1|)q(#PCDATA|子子标记1|)+q(#PCDATA|子子标记1|)?q(#PCDATA,子子标记1,)q(子子标记1|#PCDATA|子子标记I|)*An appropriate exampleJeff is a developer and author for Beginning XML 4th edition.Jeff loves XML!空元素空元素q空元素表示在空元素表示在标记间没有没有任何任何资料料,此此时请使用使用EMPTY关关键字字,通常,通常这些些标记是指是指定定相关相关的的属性属性,如下所示:,如下所示:q上述上述image元素就是一元素就是一个个空元
13、素,如下所示:空元素,如下所示:不限制不限制元素元素q如果如果不准不准备对一个一个标记有任何有任何约束,元素束,元素的的约束条件可以使用关束条件可以使用关键字字ANY,如下所,如下所示:示:q上述上述message元素的元素的资料内容可以任意料内容可以任意。Example:Making ContactsJeffCraigRafter34.031892-117.207642001-909-555-1212David Hunter,Danny AyersJeff is a developer and author for Beginning XML 4th edition.Jeff loves X
14、ML!This is an xml file which calls contacts.xmlMaking ContactsqCreate a new document called contacts.dtd.qAdd the root element:qDeclare the element:qAgain,declare element:Making ContactsqWe can use a complex content model for the element:qDelcare element&element:qqMaking ContactsqFinally,we can use
15、a truly mixed content model for the element:Update the XML FileJeffCraigRafterRedlands,CA,USA34.031892-117.207642001-909-555-1212David Hunter,Danny AyersJeff is a developer and author for Beginning XML 4th edition.Jeff loves XML!DavidHunterAddress is not known416 555 1212Jeff Rafter,Danny AyersSenio
16、r Technical Consultant for CGI.DanielJohnAyers43.84715610.50808Mozzanella,7 Castiglione di Garfagnana,55033 Lucca Italy+39-0555-11-22-33-Jeff Rafter,David HunterA Semantic Web developer and technical author specializing in cutting-edge technologies.4.4 DTD属性属性的的语法语法qDTD属性列表属性列表(Attribute List)指示指示XM
17、L元素所元素所拥有有的的属性列表属性列表,包含,包含属性名称属性名称和和值值,属性属性的位置的位置是放在是放在开始开始标记。qXML元素的元素的属性属性都需要使用都需要使用声声明明,可以,可以同同时声明声明元素的多元素的多个属性个属性,使用空格分,使用空格分隔即可,其隔即可,其参数参数的的说明明如下:如下:qelement_name:属性属性所所属属的的XML元素元素名称名称。qattribute_name:属性名称属性名称。qattribute_type:指定:指定属性属性值值的的种种类。qdefault_value:属性属性的的预设值值,用来用来指出指出属性属性是否需要是否需要出出现或只是
18、或只是选项。属性名称属性名称q属性名称的命名属性名称的命名规则和和标记的命名的命名规则相相同,可以由字母、数字、下划同,可以由字母、数字、下划线、点或、点或连字符字符组成,但必成,但必须由字母或下划由字母或下划线开开头。属性区分大小写。属性区分大小写。属性属性类型型q如果限定其是个如果限定其是个CDATA类型,型,则属性属性值中中不能含有非不能含有非PCDATA字符。字符。属性属性的的属性属性值q如果如果XML文件文件没有没有强迫迫设定定元素的元素的属性属性,不不过属性属性需要需要一个一个预设值值,以便,以便应用用程式程式处理理时的需要,的需要,此此时请指定指定属性属性的的预设值值,如下所示:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第4章 DTD-检查XML文件有效性 DTD 检查 XML 文件 有效性
限制150内