欢迎来到天天文库
浏览记录
ID:36805863
大小:1.14 MB
页数:51页
时间:2019-05-10
《经典介绍DTD和Schema及区别》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、DTD和XMLSchema回顾掌握XML语法规则了解XML技术体系了解XML应用方向问题什么是XML,为什么要用XMLXML的内容有哪些顺序:从文档上面到下面什么叫有效的XML目标理解文档类型定义(DTD)理解命名空间理解Schema使用Schema和DTD定义XML文档概述为什么要验证XML什么叫有效的XML如果一个XML文档规定其文档类型和数据结构的DTD或者Schema,并且与之关联,并且校验正确,则此文档是有效的良好与有效关系格式良好的XML文档,不一定是有效的XML文档。有效的XML文档,则一定是格式良
2、好的XML文档。说明:在格式良好的基础上,再看是否满足企业的特殊要求XML验证技术DTDSchema文档类型定义DTDDTD(DocumentTypeDefinition,文档类型定义)是一套标记的语法规则,它定义了元素、子元素、属性及其取值,规定了用户在DTD关联的XML文档中可以使用什么标记、各个标记出现的顺序以及标记的层次关系,并定义了实体。对于一个DTD的定义,最关键的在于它内部的元素和属性的定义。一个DTD文档实际上就是元素定义的集合,而元素可能包含属性,也可能不包含属性。使用DTD定义XML元素
3、LEMENT元素名称元素内容声明>要点:包含符号和数据类型两部分。符号符号类型描述示例?问号表示该对象可以出现,但只能出现一次(菜鸟?)*星号表示该对象允许出现任意多次,也可以是零次(爱好*)+加号表示该对象最少出现一次,可以出现多次(成员+)()括号用来给元素分组(古龙
4、金庸
5、梁羽生),(王朔
6、余杰),毛毛
7、竖条表明在列出的对象中选择一个(男人
8、女人),逗号表示对象必须按指定的顺序出现(西瓜,苹果,香蕉)元素内容的类型内容解释#PCDATA表明该元素可以包含任何字符数据,但是不能在其中包含任何子元素。假设我们定
9、义元素学员:则下面的实例是正确的:<学员>努力学习是好学员学员>而下面的实例就是错误的:<学员>努力学习是好学员学员>因为在其中包含了子元素。一般如果定义元素的CONTENT为#PCDATA,最好在其中只加入纯文本字符数据EMPTY如果一个元素的CONTENT被声明为EMPTY的话,表示该元素不能包含任何子元素和文本,仅可以使用属性。ANY表示该元素中可以包含任何在DTD中定义的元素内容其他类型最通常的情况是一个元素本身是由其他元素的集合构成的示例<
10、!ELEMENT书籍(著作+)>
11、ATA)>使用DTD定义XML元素的属性说明:回顾定义表时字段的定义。对比学习XML很重要。属性类型及其含义类型具体的含义说明CDATA这个类型表明该属性只能包含字符数据ID该属性的取值必须是唯一的,在一个文档内两个ID属性的值不能一样IDREF、IDREFS这个属性的值实际上就像C++中的指针一样,它是一个指向文档中其他地方声明的ID值,所以,如果在具体的文档中该属性的取值和它所指向的ID值不匹配的话,就会返回错误。IDREFS和IDREF类
12、似,但是可以具有由空格分隔的多个引用ENTITY、ENTITIESENTITY属性的值必须对应一个在DTD文档内声明的但还没有分析过的实体。ENTITIES属性和ENTITY类似,不同的是它可以包含多个实体,每一个实体之间可以用空格进行分隔。需要注意的是实体包括普通实体、外部实体、参数实体和外部参数实体。可以把实体理解为程序设计语言中的变量NMTOKE、NMTOKENSNMTOKEN是CDATA的一个子集,它所使用的字符必须是字母、数字、句点、破折号、下划线或冒号。NMTOKENS和NMTOKEN类似,不同之处在
13、于它可以包含多个值,每个值之间用空格进行分隔NOTATIONNOTATION的值必须引用已在DTD文档其他地方声明过的某注解的名称NOTATION(enumerated)该属性的值必须匹配NOTATION名称列表中的某个名称。比如,我们已经存在两个NOTATION,一个为beauty,一个为beast;我们可以定义一个属性类型为NOTATION(beauty
14、beast)
此文档下载收益归作者所有