山东大学《网站设计与建设》课件第14章 XML简介

上传人:东*** 文档编号:280913191 上传时间:2022-04-22 格式:PPT 页数:47 大小:181.50KB
返回 下载 相关 举报
山东大学《网站设计与建设》课件第14章 XML简介_第1页
第1页 / 共47页
山东大学《网站设计与建设》课件第14章 XML简介_第2页
第2页 / 共47页
山东大学《网站设计与建设》课件第14章 XML简介_第3页
第3页 / 共47页
山东大学《网站设计与建设》课件第14章 XML简介_第4页
第4页 / 共47页
山东大学《网站设计与建设》课件第14章 XML简介_第5页
第5页 / 共47页
点击查看更多>>
资源描述

《山东大学《网站设计与建设》课件第14章 XML简介》由会员分享,可在线阅读,更多相关《山东大学《网站设计与建设》课件第14章 XML简介(47页珍藏版)》请在金锄头文库上搜索。

1、第第14章章 XML简介简介第三部分 网站设计技术141 XML语法与文档结构nXML是一种元标记语言n它与HTML等标记语言的区别:XML提供了创建标记语言的准则。作为元标记语言,XML不包含标记。使用XML设计一种标记语言时,必须要定义一个标记集合,标记集合中每个标记内容的意义要明确规定。严格来说,使用XML设计出来的标记语言称为XML应用程序。但是,对于一个用来处理存储在文档中信息的程序来说,如果这个文档也是用XML写的,那么通常也被称为一个XML应用程序。为了避免这种混淆,把一种基于XML的标记语言成为一个标记集合,而把使用XML的标记语言编写的文档称为XML文档。1.实例实例nfir

2、st.xml。 Honda 2008 red 2XML声明nXML文档以声明开始,在上面例子中,文档的声明部分就是文档的第一行。 n一个XML文档可以包含三种不同类型的属性:版本、编码和独立。编码属性(encoding)指定XML文档使用的语言,一般在编码属性中指定XML文档所使用语言的字符集。独立属性(standalone)指定是否需要文档类型定义(DTD),关于DTD的概念将会在后面介绍。3XML的标记与属性n与HTML类似,也将标记及它们包含的信息叫做元素。与HMTL不同的是,XML中所有的元素必须有开始标记和结束标记,否则格式就将出错。nXML是一种元标记语言,因此XML本身并不定义任

3、何的元素。标记及属性是由用户自己定义的,通常用来描述文档中的数据。在上例中,、等标记都是用户自定义的。与HTML一样,标记的属性值必须是有引号的。n需要注意的是,XML中的标记中“”前是允许有空格的。nXML中的注释语句与HTML的完全相同。4XML的格式要求XML对大小写敏感XML标记必须有结束标记在XML中,通常单标记是不允许出现的。在上面的例子中可以看到一个特殊的标记,这个标记是没有结束标记的。在XML中,这样的标记叫做空标记。与HTML中单标记不同,XML中的空标记必须在”前加”/”表示标记结束。XML文档必须有根标记n在HTML中,一个HTML文档会用和标记文档的开始和结束。在XML

4、中同样要求用一对跟标记来标志文档的开始与结束。需要注意的是,XML声明部分并不是根标记的组成部分。在上面例子中,根标记是和。从该例子中可以看到,根标记必须出现在XML声明部分后,其他所有标记必须嵌套在根标记中。XML标记必须正确嵌套n嵌套的例子n嵌套的例子就会出现错误。5XML的特殊字符n在XML中有5种字符属于特殊字符通过实体引用n左尖括号“” >n与符号“&” &n单引号“” &aposn双引号“” "2008年将在中国上市<新款Focus三厢>2008年将在中国上市n有一些经常用在数学公式中的特殊符号是无法从键盘输入到文档中的,比如希腊字母。n在XML中,解

5、决这一问题的手段是使用字符引用。n通常,这些字符会在Unicode字符集中找到,需要记住这些特殊字符在Unicode字符集中的编号,然后进行引用。n引用的格式为“&#+编码”,比如“α”会被解析为希腊字母“”。n如果编码采用十六进制,则引用格式为“&#x+编码”。α+ β=100将被解析为:+=100。 142 文档类型定义对XML的数据结构进行限制有两种途径:n使用文档类型定义(Document Type Definition,DTD)nXML架构(XML Schema)。1什么是DTDnDTD是一个一系列关于数据结构规则的集合,这些规则被称为声明。声明规定了一个

6、将出现在文档中的标记的集合以及这些标记如何和在哪里出现。一个DTD可以为一个XML文档服务,也可以被一系列XML文档使用,因此它可以为团队开发提供良好的开发规范。nDTD分为内嵌DTDn位于由它来描述语法规则的XML文档中,因此它只能约束它所在的XML文档;n外部DTD两种。n被单独存储为一个文件,因此可以为一组XML文档服务。n需要注意的是,浏览器的XML解析器只检查XML文件是否规范。当用浏览器打开一个被DTD约束的XML文档时,解析器只检查XML文档所关联的DTD文件是否有语法错误,并不检查XML文件是否遵守该DTD规定的约束条件。2DTD中的元素DTD中的元素用来约束关联XML文档中的

7、标记。元素的声明格式为:约束标记中只包含文本数据n标记中只包含文本数据,实际上就说明了在标记中不能包含子标记。n其声明格式如下:n下面的SANTANA标记是符合约束条件的 Santana is the most famous car in China n而下面的标记则是不符合条件的: Shanghai Santana is the most famous car in China 约束标记中的子标记n子标记列表可以约束标记的子标记有哪些、它们的排列顺序如何。而规定一个子标记重复出现的次数,可以通过为子标记的规范说明添加一个修饰符来实现。这些修饰符包括:+:一次或多次重复*:零次或多次重复?:零

8、次或一次重复ndtd_sample1.dtdnxml_sample1.xml 宝来 Bora 1.8T 被誉为驾驶者之车 RMB 18万 9折 途安 Turan 2.0 兼顾家用与商用 RMB 17.5万 92折 EMPTY与ANYn如果约束一个标记是空标记,或者是只包含空字符的非空标记,可以将标记的约束规则设置为EMPTY。n而如果标记可以在字面上包含任何内容,可以将标记的约束规则设置为ANY。比如下面的两个例子:3DTD中的属性nDTD中的属性是标记的属性,它可以为标记添加附加信息。n在DTD中,属性的声明与标记的声明是分开的。一个属性的声明必须包含下面的内容:属性对应的标记名称、属性名称

9、和属性类型。属性是允许包含一个默认值的。n属性的声明格式如下:属性的默认值n具体值:若没有规定任何值,则使用该默认值n#FIXED 具体值: 所有该属性元素都使用这个值,不能改变n#IMPLIED:未给出默认值,元素的属性值可以没有(暗示)n#REQUIRED:未给出默认值,但元素的实例必须有属性值属性的类型nCDATA任意字符串,如果包含特殊字符,需要字符引用nEnumerated枚举类型nNMTOKEN由字母、数字、下划线和连字符构成的字符串nNMTOKENS与NMTOKEN类似,但字符串间可以使用空格做间隔nID属性值有专用性。可以由字母、数字、下划线、连字符和点构成,但必须以字母或下划

10、线开头nIDREF用来判断标记之间的关联。通过定义IDREF类型,可以找到某个ID类型标记的后代标记nIDREFS与IDREF类似,但可以约束某个属性的属性值是若干个其他ID属性的属性值的组合ndtd_sample2.dtdnxml_sample2.xml王刚李强4DTD中的实体n可以在DTD中定义实体,从而在与DTD关联的XML文档中可以引用它。nDTD中的实体分为两类:普通实体n普通实体在DTD中定义,与DTD关联的XML文档通过实体引用来使用实体,解析器在解析标记中的数据时,使用实体的内容来替换实体引用;参数实体。n参数实体也在DTD中定义,但仅在标记声明中才能使用。n在DTD中声明实体

11、的格式如下:如果实体声明中使用了%选项,表示这个实体是参数实体,否则就是普通实体。 ndtd_sample3.dtdnxml_sample3.xml本周特别推荐产品是&BMWX5本周特别推荐产品是&CAYENNE143 命名空间n由于XML允许自定义标记,因此可能会使得不同的XML文档或同一个XML文档中出现名字相同的标记,这显然会带来混乱,因为处理XML文档的软件系统必须能无二义地识别XML文档中的标记。n为了解决这一问题,就需要在XML中使用命名空间。n命名空间的目的是有效地区分名字相同的标记,也就是说,当两个标记的名字相同时,可以通过它们所在的命名空间不同来进行区分。nW3C为命名空间定

12、义了一个标准,详细信息可以查阅http:/www.w3.org/TR/REC-xml-names。1命名空间的声明格式n命名空间的声明格式如下: n其中的方括号表示是可选项。n如果在定义命名空间名时定义了前缀,那么每次使用该标记及其子标记时,都必须把前缀放在标记名前面,表明此标记是属于这个命名空间的。n如果不加前缀,说明此命名空间是默认命名空间,一个标记最多只能有一个默认命名空间。n如果两个标记同名,只要它们所在的命名空间不同,就被视为两个不同的标记。n对于命名空间的名称来说,如果两个命名空间名字相同,即使它们的前缀不同,也被视为相同的命名空间;n而如果两个命名空间名字不同,即使它们的前缀相同

13、,也被视为不同的命名空间。n当然作为良好的代码规范来说,在XML文档中一般不会使用相同的前缀名来表示不同的命名空间,也一般不会为同一个命名空间取两个不同的名字。宝马公司产品介绍n这个例子中定义了一个名为BMW的标记,其前缀名为sample,那么将来如果这个标记及其子标记隶属于这个命名空间,那么必须通过这个前缀来引用此命名空间 宝马公司入门级商务轿车系列产品 宝马5系车型 $30,000-50,0000 宝马7系车型 $55,000-80,00002命名空间的作用域n一个标记如果使用了命名空间声明,那么该命名空间的作用域就是该标记及其所有的子孙标记。这个标记及其子孙标记在使用时如果要隶属于这个命

14、名空间,需要通过前缀来引用此命名空间。n但即使在父标记中声明了一个命名空间,在它的子孙标记中同样可以重新声明同名的命名空间,虽然这么做不是一种好习惯。宝马公司产品介绍宝马5系介绍宝马520介绍 3命名空间名n命名空间的名字通常有三种形式:Internet主机名Email地址一个文件的绝对路径n这三种形式统称为统一资源标示符(Uniform Resource Identifier,URI)。大多数情况下,URI会以URL的形式出现。n需要特别注意的是,在XML中,一个URI不必是有效的,尤其是以URL做URI的时候。比如www.aaab.ccn不是一个存在的URL,但是在XML中可以将它作为UR

15、I存在。也就是说,XML不负责判断URI是否有效,只要格式上存在URI即可。 4DTD与命名空间n在DTD中,命名空间的名字被看成一种特殊的属性, 使用ATTLIST来声明,n格式为:一般将命名空间名类型固定为CDATA类型,命名空间名固定为#FIXED加命名空间名。144 XML架构n使用DTD来对XML文档的数据组织进行限制是有缺陷的。DTD对XML文档中数据的类型不做判断,它会认为XML中所有的数据都是文本类型,显然,如果数据是数值、日期等类型的话,DTD无法完成对数据格式的限制。DTD的语法与XML无关,因此XML解析器不能分析它们。以上的缺陷会使得DTD的使用受到一些限制,当需要XM

16、L中的数据类型进行约束的时候,DTD显然不能胜任。1什么是XML架构n一个架构类似于一个类,一个符合架构定义结构的XML文档类似于这个架构类的一个对象。或者说,符合一个特定架构的XML文档都是这个架构的实例。nXML架构(XML Schema)的提出是为了弥补以上所说的DTD的缺陷。目前,XML架构是最可能的DTD替代者。nXML架构的问题在于它的标准过于复杂,而且支持它的解析器目前数量也比较少,本节所介绍的也只是它的一些基本概念和特征。n如果对XML文档的约束只限于文档中的标记和属性结构,而不涉及数据的具体内容的话,还是推荐使用DTD对XML文档进行约束。2架构中的标记nXML架构是扩展名为.xsd的一个文本文件,这个文本文件需要使用XML语法来编写。n架构本身使用一个来自叫做源架构的命名空间的一个词汇表写成,这个源架构就是http:/www.w3c.org/2001/XMLSchema。每个架构都需要在第一行就指定这个命名空间,其格式为: 如果要从源架构中引入名字,那么这个名字的前缀必然是xsd。一个架构文件的根标记就是schema。n架构的主要目的是约束相关联的XML文档中的标记

展开阅读全文
相关资源
相关搜索

当前位置:首页 > IT计算机/网络 > 网站策划/UE

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号