您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > Web服务与应用开发3XML(webService学习快速入门)
1第三章XML基础3.1XML简介3.2XML语法3.3DTD简介3.4XMLSchema3.5SAX简介3.6DOM简介23.1XML简介=1.0encoding=ISO-8859-1?!--Copyrightw3school.com.cn---notetoGeorge/tofromJohn/fromheadingReminder/headingbodyDon'tforgetthemeeting!/body/note一个简单的XML文件:3XML(可扩展标记语言,eXtensibleMarkupLanguage),是由W3C的XML工作组定义的一种新的Internet数据描述和交换标准。1996年,W3C开始设计一种可扩展的标记语言。1998年2月,XML1.0成为了W3C的推荐标准。XML作为一种跨产品、跨界面、跨平台的互联网元数据语言,得到了迅速发展。Web服务的诸多协议,如SOAP、WSDL、UDDI等,都是构建在XML基础之上的,具有极大的应用前景。XML被设计用来传输和存储数据。3.1.1XML的起源和目的4XML的最初设计目标是:1.XML应该于Internet上运作,并且简单易懂;2.XML应该可以广泛支持多样性的应用程序;3.XML应该与SGML兼容;4.撰写处理XML文件的程序应该十分简单;5.在XML中的选择性功能应该尽可能少,理想状况下其应该为零;6.XML文件应该易于读取,并且清楚合理;7.XML的设计应该能十分迅速的完成;8.XML的设计应该严谨并且简洁;9.XML文件应该易于建立;10.XML标记应该依重要性最小化。53.1.2XML和HTML的区别XML和HTML都是用于操作数据或数据结构,在结构上大致是相同的,但它们在本质上却存在着明显的区别,它们的区别主要有以下几点:语法要求不同标记不同作用不同在HTML中不区分大小写,在XML中对大小写要求非常严格。HTML使用固有的标记,而XML没有固有标记。HTML用于显示页面,而XML用于描述页面内容的数据或数据的结构。HTML把数据和显示合在一起,在页面中把这些数据显示出来,而XML则将数据和显示分开。63.1.3XML的优势每种语言的产生都能完成某些特定的功能,XML作为一种标记语言也不例外。XML最大的优势在于它能对各种编程语言编写的数据进行管理,使得在任何平台下都能通过解析器来读取XML数据。它的优势可归纳为以下几点:数据的搜索数据的显示数据的交换在XML中可以提取文档中任何位置的数据,XML将数据的结构和数据的显示形式分开,根据需要使数据呈现出多种显示方式。如HTML、PDF等格式。XML标记语言的语法非常简单,可以通过解析器在任何机器上解读。并可以在各种计算机平台上使用。逐渐成为一种数据交换的语言。73.2XML语法3.2.1XML文档的组成XML文档也属于纯文本文件,该文档一般有两个主要组成部分:序言和文档元素。?xmlversion=1.0encoding=UTF-8?!--FileName:BookList.xml--BookTitleDevelopingWebServices/TitleAuthorCountry=“China”HappyYu/AuthorPrice55.5/Price/Book序言根元素XML声明注释嵌套在根元素中的元素属性83.2.2序言格式正确的XML文件必须由XML序言开始。它应该指出该文档所使用的XML规范版本、编码方式,同时也说明了该文档是否独立。XML序言中的文字区分大小写。序言包含如下几个属性:(1)版本号。虽然XML1.0是目前唯一的版本,但是仍然要声明版本属性,XML声明如下:?xmlversion=“1.0”?。(2)文字编码声明encoding位于版本属性之后,如下所示:encoding=“SHIFT_JIS”。文字编码声明指出文件使用何种字符集建立,默认值认为XML文件是以Unicode编码(UTF-8或UTF-16)建立的。该属性是可选的。(3)独立文件声明standalone位于文字编码声明之后,如下所示:standalone=“yes”。它标识了是否需要访问外部数据源。该属性也是可选的。93.2.3元素元素是XML文档的重要组成部分,在XML文档中必须存在元素。XML文档的元素一般是由起始标签、元素内容和结束标签构成,起始标签中的元素类型名必须与相应结束标签中的名称完全匹配。元素的内容可以是字符数据、其他元素或者两者的组合。如下代码所示:XML文档中的第一个元素被称为根元素,在任何一个XML文档中有且只有一个元素被称为根元素。其余所有的元素都是子元素,子元素必须正确的嵌套在根元素中。BookTitleDevelopingWebServices/TitleAuthorCountry=“China”HappyYu/AuthorPrice55.5/Price/Book起始标签结束标签内容(嵌套元素)103.2.4属性有时候元素只有名称是不够的,需要使用属性来描述XML文件。•属性是用来修饰某个元素的,如:•root•aattribute=aathisistest/a•/root关于元素的属性需注意如下几个问题:属性的值必须用引号括起来,如:attribute1=“aa”或attribute3=‘aa';元素的属性以名和值成对出现;用来修饰同一个元素的属性的属性名不能相同;属性值不能包含“&”、“’”、“”等字符。113.2.5字符引用、实体引用和CDATA节XML为显示非ASCII码集中的字符串提供了字符引用和实体引用两种方式。(1)字符引用:用来表示一个可显示字符,由十进制或十六进制的数字前面加上或,后面紧跟分号组成。例如,要插入欧元符号,许多键盘上仍没有该字符,可以将€或€插入文档。(2)实体引用:是一种合法的XML名字,前面带有一个符号&,后面跟着一个分号组成。所有实体必须在使用前予以定义。注意,XML中有五个固有实体,如下表所示。12实体名引用格式表示的符号lt<gt>amp&&apos''quot"如果字符可能会使XML分析器错误地解释文档结构,请使用实体,而不要键入字符。例如,要写入Me&You,请使用Me&You或Me&You。对于ab,请使用a<b。对于bc,请使用b>c。13如果在元素内容的字符数据中需要插入许多或&字符,那么使用字符引用或实体引用会稍显笨拙而且会使数据难以阅读。在这种情况下,可以将包含限制字符的文本放在CDATA节中。通过CDATA节可以通知分析器CDATA节包含的字符中没有标记。CDATA节的基本语法为:![CDATA[…]],其中…部分可以是任意字符串,只要不包括字符串“]]”即可。在XML分析器遇到第一个![CDATA[时,会将后面的内容报告为字符,而不尝试将其解释为元素或实体标记。字符引用在CDATA节中无效。分析器在遇到结束的]]时,将停止报告并返回正常分析。14?xmlversion=1.0encoding=gb2312?程序titletest/title内容![CDATA[if(2010){return你好;}else{returnhello;}]]/内容/程序![CDATA[Anin-depthlookatcreatingapplicationswithXML,using,,]]153.2.6注释在XML文档中的适当位置添加注释可大大增强可读性和清晰性。注释以!--开头,以--结尾,在两个定界符之间,可以输入任意想要输入的字符,除了双连字符(--)之外。例如!--cataloglastupdated2000-11-01--。注释可以出现在文档序言中,包括文档类型定义(DTD);文档之后;或文本内容中。注释不能出现在属性值中,不能出现在标记中。16•格式良好的(well-formed)XML文档如果某个文档符合XML语法规范,那么我们就说这个文档是“格式良好”的文档。只有格式良好的XML文档才能被正确的分析和处理。所谓格式良主要指满足以下几项要求:(1)确定且唯一的根元素;(2)元素的标记区分大小写,开始标记和结束标记匹配;(3)正确的元素标记嵌套;(4)为属性赋值时必须将属性值用引号括起;(5)同一个元素的属性不能重复。•有效的(valid)XML文档一个格式良好的xml文档是有效的,如果以下条件成立:(1)文件的序文必须包含合适的文件类型声明,该声明包括文件模式定义,如DTD、XMLSchema,负责定义文件的结构。(2)文件的其余部分必须符合模式定义中所定义的结构。在此大家要明白XML文档可分为结构良好的XML文档和有效的XML文档,以及他们之间的关系。即具有结构良好的XML文档并不一定就是有效的XML文档,反之一个有效的XML文档必定是一个结构良好的XML文档。173.2.7XML命名空间XML的元素名字是不固定的,当两个不同的文档使用同样的名称描述两个不同类型的元素时,或者用一个同样的标记表示两个不同含义的内容时,就会发生命名冲突。XML命名空间提供了一种避免元素命名冲突的方法。XML命名空间并不是XML1.0标准的一部分,而是一个称为“NamespaceinXML”的独立标准。W3C组织于1998年2月提出了XML命名空间标准的第一个草案,直到1999年1月才正式发布为推荐标准。18XML命名空间的声明有两种方式,即直接定义方式和默认定义方式。(1)直接定义方式:xmlns:[命名空间前缀]=[命名空间名]其中,“xmls:”是必有属性;[命名空间前缀]是命名空间的别名,它的值不能是xml;[命名空间名]是一个统一资源标识符引用,其功能是区分不同的命名空间。(2)默认定义方式:xmlns=[命名空间名]没有“命名空间前缀”的命名空间声明,就是默认的命名空间声明。定义一个默认的XML命名空间,那么在一个命名空间的作用域里所有未经命名空间前缀修饰的名称被默认为属于这个默认的命名空间。XML命名空间的声明19命名空间的使用在定义了命名空间的声明以后,对如何引用命名空间前缀构成新的元素名和属性名,需要进一步统一规范,这就是所谓“合法名称”定义。“合法名称”由用冒号:分开的前缀部分和本地部分组成。其中,前缀部分必须是一个[命名空间前缀],且这个命名空间前缀必须已经经过命名空间声明,语法分析器会自动将其与声明中的[命名空间名]相联系;本地部分是该命名空间中定义的元素或属性名。“合法名称”可应用于起始元素标记、结束元素标记、空元素标记以及属性的定义。20d:studentxmlns:d='='urn:foo'id='3235329'nameJeffSmith/namelanguageC#/languagerating35/rating/d:studentd:studentxmlns:d=':i='urn:schemas-develop-com:identifiers'xmlns:p='urn:schemas-develop-com:programming-languages'i:id3235329/i:idnameJeffSmith/namep:languageC#/p:languaged:rating9.5/d:rating/d:student21命名空间的作用域命名空间的作用域范围,是指一个命名
本文标题:Web服务与应用开发3XML(webService学习快速入门)
链接地址:https://www.777doc.com/doc-2867161 .html