《《XML及其应用》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《XML及其应用》PPT课件.ppt(62页珍藏版)》请在三一办公上搜索。
1、XML及其应用,北京大学计算机系,王胜清,推荐站点,一个XML的例子,张三 1999年3月2日 脸盆 20 李四 1999年12月8日 牙刷 10,在电子商务应用中,需要对大量复杂的动态数据使用统一的数据格式进行表示和管理。如何实现?一种可行的方法就是使用扩展标记语言XML(eXtensible Markup Language)。XML基于文本格式,开放跨平台,采用结构化数据表示格式,数据表示与数据显示相分离,无论是在B2B还是在B2C中,均能发挥重要作用。,主要内容简介,1.XML及其主要特征2.XML的研究背景3.XML与HTML的比较4.XML的相关技术5.XML的实现6.XML的应用7
2、.XML在中国,一、.XML及其基本特征,XML eXtensible Markup Language(可扩展的标记语言)是SGML(Standard Generalized Markup Language)的一个优化子集,是一通用数据格式表示语言XML 是一标记语言族,XML是一种元标记语言,使用者可按需创建新的标记。带标记的元素是XML文档的构造块,这种元素可以有若干个属性,并可以包含零个或多个子元素。这些子元素可以是文本数据,也可以是带标记的元素。,1、XML,1、XML(续),XML文档示例,Brown9 1/2 在中国定制,2、XML的特性 可扩展性。XML是设计标记语言的元语言,而
3、不是HTML这样的只有一个固定标记集的特定的标记语言。正如Java让使用者声明他们自己的类,XML让使用者创建和使用他们自己的标记,而不是HTML的有限词汇表。可扩展性是至关重要的,企业可以用XML为电子商务和供应链集成等应用定义自己的标记语言,甚至特定的行业一起来定义该领域的特殊的标记语言,作为该领域信息共享与数据交换的基础。,2、XML特性(续)灵活性。HTML很难发展,因为它是格式、超文本和图形用户界面的混合,要同时发展这些混合在一起的功能是很困难的。而XML提供了一种结构化的数据表示方式,使得用户界面分离于结构化数据。在XML中,可以使用样式表,如XSL(Extensible Styl
4、esheet Language,可扩展样式表语言)和CSS2(Cascading Style Sheets Level 2,层叠样式表第2进阶),将数据呈现到浏览器中。另外,XML文档之间的超链接(Hyper Link)功能由独立的XLink(Extensible Linking Language,可扩展链接语言)来支持。所有这些方面都可以互相独立地改进并发展。所以,Web用户所追求的许多先进功能在XML环境下更容易实现。,2、XML特性(续)自描述性。XML文档通常包含一个文档类型声明,因而XML文档是自描述的;不仅人能读懂XML文档,计算机也能处理。XML文档中的数据可以被任何能够对XML
5、数据进行解析的应用所提取、分析、处理,并以所需格式显示。XML表示数据的方式真正做到了独立于应用系统,并且这些数据能重用。所以XML适合开放的信息管理。因为它的自描述性,文档里的数据可以由XML使能的应用来创建、查询和更新,跟处理传统的关系型数据库、面向对象数据库里的数据类似。XML甚至还能用来表示那些以前不被看作文档但是对传统的数据库来说又过于复杂而难以处理的数据。所以,XML文档被看作是文档的数据库化和数据的文档化,2、XML特性(续)除上述特性以外,XML具有简明性。它只有SGML约20%的复杂性,但具有SGML功能的约80%。同完整的SGML相比,XML简单得多,易学、易用并且易实现。
6、另外,XML的诞生也吸收了人们多年来在Web上使用HTML的经验。值得注意的是,XML采用Unicode字符编码系统,从而支持世界上几乎所有的主要语言,并且不同语言的文本可以在同一文档中混合使用,XML能使的软件能处理所有这些语言的任何组合。总之,XML是数据表示的一个开放标准,这种数据表示独立于机器平台、提供商、和编程语言。这一切使得XML及相关技术成为新一代网络计算的一个关键。,二、XML的研究背景,1、WWW技术的发展2、HTML与HTTP HTTP-协议 HTML(1992)+Browser-用户接口3、动态、数据驱动的Web,超过HTML的能力范围4、HTML:显示格式与内容一起5、
7、CSS(Cascading Style Sheets)+HTML6、大量复杂的动态数据管理,需要通用的数据格式,7、HTML缺陷HTML并不具备大规模Web应用所需的可扩展性、结构化和数据验证等特性。8、GML与SGML GML,1960s(IBM的文档(如Script和Bookmaster)系统的基础)。SGML为出版业提供了一种将数据内容与显示分离开来的数据表示方法,使得数据独立于机器平台和处理程序。SGML的确在许多大型出版系统中很有用,但是它的复杂性使其难以直接应用到Internet上,这也是它没有被广泛接受的主要原因。另一方面,作为一个用SGML定义标记语言的典型例子,HTML是专为
8、Web上发布超文本而设计的标记语言。,9、XML的设计准则:1)XML应直接可用于Internet 2)XML应支持更广泛的应用 3)XML应与SGML兼容 4)应易于写处理XML文档的程序 5)XML的可选特征应最小,最好为零 6)XML文档应含义清楚,人可理解.7)XML的设计应入手容易 8)XML的设计应可形式化、简明 9)XML文档应易于产生 10)简洁,10、XML从1996年开始,W3C(World Wide Web Consortium)致力于XML技术。建立了基本技术规范建立了XSL及XML命名空间规范1998年2月10日,W3C发布了XML 1.0作为其推荐标准。1999年9
9、月推出XML查询标准规范。XML给Web应用乃至网络计算注入了新的活力。,三、XML与HTML的比较,1、两者同根SGML,均基于文本2、HTML文档主要包含显示格式、主要是为了浏览,而不是为计算机所使用,是显示格式描述语言3、HTML包含预定义的标记(Tag)集,易学易于访问,但难以数据重用,可扩展性差4、XML以数据可重用为切入点,可定义自己的标记集,且能让其它人或程序知道和理解这些标记集,可扩展性强5、XML比HTML易于扩展,XML标记表示了数据的逻辑结构,可为不同应用以不同方式加以分析 同时,进行严格的语法和语义检查。6、XML文档将数据与显示格式分离,是数据格式描述语言,为信息开放
10、、共享和交互提供基础,XML基本概念及语法,元素由标记加上内容构成.标记与属性(attribute).属性是针对元素的,但形式上常附着在标记中.XML文档的well-formed概念所有元素都要正确关闭(空元素 要标记之间不能交叉所有属性指都要括上引号,属性压要以名值对方式出现其它规定,XML基本概念及语法(续),XML文档的有效(Validation)概念 如果一个文档类型声明(DTD)与一个XML文档相关联,如果该文档符合该DTD,那么该文档被认为是有效的。XML文档的生命周期Authoring storageTransmissionParsing Validation?processin
11、gRenderingXML文档与它的Prolog和DTD,XML基本概念及语法(续),DTD的链接方式有两种,内嵌式,外接式。如果用外接式,将定义好的DTD存成一个.dtd的纯文字文件,比如上面例子存为book.dtd,然后按如下方式引用:XML大小写有区分元素名和属性名均区分大小写,这有点像UNIX操作系统,一个关于图书编目卡的DTD:可选安全属性,缺省值 语言的一种固有数据类型,四、XML的相关技术,1、DTD(Document Type Definition)XML文档可以在它的文档类型声明(Document Type Declaration)里声明某个DTD(Document Type
12、 Definition,文档类型定义)。DTD是关于XML文档中出现的标记和元素结构的语法约束,它可用来验证一个XML文档。DTD是一系列关于元素类型(Element Type),属性(Attributes),实体(Entities)和符号(Notations)的定义。它定义了文档所需的标记,比如可在文档里使用的元素类型,这些元素之间可能的联系,等等。,2、XSL(eXtensible StyleSheet Language)XML把内容和显示格式分开,可以让不同的用户按照各自希望的格式显示同一XML文档的数据内容。为XML文档提供格式信息的是样式表,适用于XML文档的样式表语言有XSL和CS
13、S2语言。XSL是专为XML设计的样式表语言,并采用XML语法。XSL的优势在于它可以用于转换,当然XSL也可以把XML文档转换为HTML格式。而且同一个样式表可以用于多个具有相似源树结构的文档。显示的媒介不仅限于WEB浏览器的窗口,还可以是印在纸上的书和报告等等。(CSS是用于分离HTML文档中的数据和格式)注:XSL实际上由两个基本点不同的标准构成:转化语言(XSLT)和格式化对象(fo,定义如何显示结果树),3、XSLT(XSL Transformation)XSLT的基本原理是模式和模板匹配,是一个用来根据一个XSL样式表将一个XML文档转换到另一个XML文档的语言。XSLT表达的一个
14、转换本身也是用一个XML文档表示的,它描述那些用来将一棵源树转换到一棵结果树的转换规则。XSLT表达的转换也叫做样式表(stylesheet)样式表包含一系列模板规则(template rules)。一个模板规则包含一个模式(pattern)和一个模板(template),4、XPath(XML Path Language,XML路径语言)Xpath是一个用来指明XML文档中部件的地址的语言。XPath采用简洁的非XML语法,是从XSLT中分离出来的表达式语言,主要用在XSLT和XPointer中;XPath表达式通常出现在URI(Uniform Resource Identifier)和XM
15、L属性值里。XPath表达式的求值是基于XML文档的抽象逻辑结构的,因此XPath被看作是一种在XML文档的层次结构里表示路径的方法。,5、Xpointer(XML Pointer)XPointer 是指向文档片段的指针。当文档片段发生变化时仍然可以发现。便于Server处理。,6、Xlink(XML Link)XLink是一种用XML元素向XML文档中加入链接的机制。它提供了比HTML更加灵活的链接机制,不仅支持HTML的单向链接,还支持多目的,多方向链接,它甚至还允许链接单独提出来存放在数据库中,或者是单独的文档中。XLink通过URI引用来定位资源。URI引用由URI和一个可选的块标识符
16、构成,两者用井号(“#”)分开。对于定位XML文档来说,块标识符使用XPointer规定的格式。对于链接元素来说,应用软件可以通过获取元素类型及属性名字或通过名为“XLink”的名字空间来辨认和处理链接。这两种方法都能很简单地确定链接元素。,7、命名空间命名空间用于区分具有相同名而又在相应的上下文中具有不同含义的元素和属性。.,前置字符串,Tom 1234.henry5648.,8、XML SchemaXML Schema 用于对XML文档的内容及其语义的约束机制进行有效的类型检验,应用XML Schema Language书写的schema文档定义了相应XML文档的规则,以约束其数据元素及其
17、关系。XML Schema Language既可以描述那些要求有严格句法的文档(如XML文档),也可以描述那些强调概念及其相互间关系的文档(如关系数据库)XML Schema Language提供的原始数据类型包括byte、date、integer、sequence、SQL以及Java中的基本数据类型。也允许用户定义新的类型。,五、XML的实现,1、XML的实现的基本过程用XML构造一个标记语言生成XML文档解释XML文档显示XML文档。,2、构造XML标记语言 针对特定应用问题领域,建立基于领域的XML标记语言,如,WML(Wireless Markup Language)(SABRE)、C
18、ML(Chemical ML)。首先通过DTD来设计标记,其次还要用自然语言解释这些标记的含义,或直接用XML Schema 语言 DTD-(定义)-XML Schema语言-(书写)-Schema 文档-(语法、语义约束)-XML文档 XML-data是XML Schema语言的一个典型代表,3、生成XML文档生成XML文档的数据可能来自数据库,也可来自XML文档或Web上的其它资源。可用XML-QL、SQLX、XQL等查询语言及相关技术可用来生成XML文档。XML-QL 能表达从XML 文档里抽取数据的查询,也能表达转换和多数据源XML数据集成。SQLX(SQL embedded in X
19、ML)是一个嵌入XML中的SQL语言,提供了一个存取关系数据库的简便方法。SQLX接受一个用XML描述的查询,并翻译成一个JDBC调用序列,查询结果被转换为DOM结构并返回。XQL(XML Query Language)是一个通用的XML查询语言,它提供了对XSL模式语言的自然扩展,如增加过滤器、节点索引等等功能,适用于查询和寻址等。,4、解释XML文档解释XML文档可以通过使用DOM或SAX(Simple API for XML)应用编程接口来实现。DOM是W3C为XML文档和HTML文档制定的一个独立于平台和语言的编程接口标准,使得程序和脚本能以标准的方式存取与更新文档的内容、结构和样式。
20、而SAX是XML-Dev邮件列表组推出的一个XML的Java应用编程接口标准,Java应用程序可以使用支持SAX的XML解析器来接受解析事件。使用SAX比使用DOM要节省很多内存开销,特别是当应用程序只对一个大型XML文档中的某些元素感兴趣时更是如此,但是DOM提供了更丰富的编程接口。,4、解释XML文档(续),5、显示XML文档显示XML文档有多种途径。Web上的XML文档资源可以直接显示在XML能使的浏览器中(如IE5.0);或者使用XSL样式表将XML文档转换为浏览器能处理的东西,如HTML文档;也可以使用程序对XML文档进行操作,再将结果按任何一种用户要求的方式显示。再者,XML技术也
21、支持为同一个XML文档生成在多种输出设备上的输出。,XHTML基本概念,XHTML最早叫“HTML in XML”,简单地讲,就是把过去以SGML定义的HTML,改用XML来重新定义。所有的XHTML标记都模拟既有的HTML4.0标记定义,各元素和属性的名称和用法几乎不变。不过因为变成了XML,有些地方必须遵照XML规矩,不能再像过去那么随便。,一个XHTML的例子,this is the first xhtml document,续,a very short paragraph.,XHTML的特点,XHTML1.0是1999年8月被升格为建议标准,目前正在激烈讨论之中,讨论的焦点之一就是名称
22、空间的解释问题。XHTML的特点:既可轻薄短小,又可无限延伸。模块化 将现有的HTML4.0 DTD模块化,每组DTD只支持一部分标记。目前XHTML1.0制定了3个DTD(Strict,Transitional,Frameset)。扩展性 可自定义标记,根据需要调用外来标记。,XHTML与HTML4.0的差别,格式正确原则对HTML4.0的冲击结尾标记不可省空元素XML化标记之间只许包含,不许交叉属性值一律括上引号属性不可落单,要名值对方式出现,注明DTD保证文档的有效(续),XHTML1.0定义了三种DTD,它们是:Strict:只用CSS,不用标记。Transitional:可以使用。F
23、rameset:可以使用。引用方式如下:dtd,WML,CHTML.的应用,Mobile phones Televisions PDAs Vending machines Pagers Car navigation systems Mobile game machines Digital book readers Smart watches,WML,CHTML语言的共同特征,Basic text(including headings,paragraphs,and lists)Hyperlinks and links to related documents Basic forms Basic
24、tables Images Meta information,XHTML与HTML4.0的区别,其它约定元素、属性一律小写使用正确的根元素加名称空间 必须存在CDATA区包装Style Sheets和Scripts,解读XHTML文件和MIME类型,实际上,XHTML文件可以按需要而设计成两种类型中的一种,即:.xml text/xml.html text/html,续,但是如果打算设计成.html,而且要让XHTML文件能被旧的HTML浏览器顺利解读的话,XHTML1.0的标准中提出以下几个注意事项:元素结束的地方,/之前,要多加一两个空白,如,。注明文字编码时,XML中的encoding=
25、“”和HTML中惯用的,续,CSS 与Script 最好用外部链接方式引用,因为老浏览器看不懂CDATA。HTML中以最小化表达的属性,经过XHTML反最小化后,checked=“checked”,有些老浏览器可能看不懂。有些老浏览器将会把,PI标记显示出来,没有办法。,HTML Tidy工具-将HTML文档转换为XHTML文档,免费下载网址:Ragget/tidy/,6、WebSphere中的实现方案,提供三层结构解决方案:表示层(客户端XML文档的显示或服务器端XML文档资到HTML文档资料的转换)逻辑层(Web服务器端的XML文档生成)数据层(XML文档中的数据来源(数据库服务器),6.
26、1 表示层:6.1.1 在服务器端:现在,Web应用仍然基于HTML,许多用户使用的是不支持XML的浏览器,在今后的一段时间还会是这样。虽然说,Internet Explorer 5.0支持XML,但对XSL样式表只是有限支持。另外,XML/XSL是新技术,XSL版本发布与浏览器发布会存在差距。这意味着,若要使用XML,则需要先在服务器端对XML文档应用XSL样式表,并将生成的符合一定标准的相应HTML文档传送给客户端浏览器。在WebSphere中服务器端有三种方法应用XSL:(1)在Servlet中使用XSL(使用Lotus XSL包)(2)对服务器进行适当配置,使XSL自动应用于任一XML
27、文档(WebSphere 3.02)(3)使用XSLT岛(Island)技术(允许直接在JSP中使用XSL、其实现是基于IBM的Bean脚本框架技术),6.1.2 客户端在客户端应用XSL是应用XSL的另一种方式,这种方式也很重要。首先,支持XML/XSL的浏览器会逐步增多,可能会因性能而不在服务器端应用XSL。实验表明,在服务器端应用XSL会使系统性能降低4%。其次,当用户不能直接获得真实的XML数据,则XML数据的重用性和共享性就会失去意义,而这是XML的主要特点之一。在WebSphere中,可有两种方法,在客户端应用XSL:定义特殊的Web应用(在WebSphere中是通过名为xmlap
28、p的Web应用来实现在客户端XSL的应用功能)、根据浏览器类型应用XSL(通过处理指令的media属性来实现),6.2 逻辑层,在WebSphere中有三种生成XML文档的方法:1)从Servlet中使用Println语句和串处理功能生成和输出XML文挡文件2)在Servlet或JavaBeans中使用文档对象模型(DOM)API(应用程序接口)生成XML文档表示树,然后以Servlet或JSP(Java Server Page)形式输出相应结果3)在JSP中根据XML格式设置表示Java数据的XML文档元素,6.3 数据层动态生成的 XML 文档的内容可以从数据服务器中检索出来。根据不同的
29、XML 应用程序,抽取出来的数据可以作为一个 XML 文档,或以 JDBC 或其它一些格式返回至小服务程序中,该小服务程序将数据转换成一个 XML 文档。今后将逐渐流行那种能用于访问数据库的具XML能力的JavaBean。,6.4 XML文档结构服务IBM WAS 3.0提供了 XML 文档结构服务,该服务由用于服务器端 XML 处理的文档语法分析器、文档验证器和文档生成器组成。核心API包含XML4J(XML for Java Parser)和LOTUSXSL。XML4J软件包的应用编程接口包括XML Java API 2.0.x 和XML Java API 1.1.x。,6.5 DOMDO
30、M是基于文档的树状结构(tree based),提供了用来表示XML文档和HTML文档的一组标准的对象、组合这些对象的标准模型、以及存取和操纵它们的一个标准接口。DOM 是W3C为XML文档和HTML文档制定的一个独立于平台和语言的编程接口标准,使得程序和脚本能以标准的方式存取与更新文档的内容、结构和样式。提供能表示结构化文档的一组低层的基本接口集、用来表示XML文档的扩展接口、适用于HTML文档的额外的高层接口、用来创建和操纵文档结构和内容的一组核心接口,并提供一组可选模块,这些模块包含了为XML、HTML、抽象视图、类属样式表、层叠样式表、文档结构的遍历、Range对象等特制的专用接口。,
31、6.6、XML Parser for Java,IBM Parser for Java(XML4J),基于DOM 和SAX API,是以纯Java书写的具有健壮性的XML处理器。,六、XML的应用,1、数据交换与信息共享数据交换与信息共享是XML的最重要的用途之一。XML使得不同计算机应用系统之间交换数据变得容易起来,这是因为它的可扩展特性和文档中的元数据。特别地,XML在下列领域有重要应用:EDI、Agent、软件设计元素的交换、CRM。,2、Web应用XML文档无疑将成为Web资源的重要组成部分,而且基于XML的文档资源使Web搜索引擎的智能化变得容易起来。除此之外,XML能够用来建立HT
32、ML所不能达到的多层Web应用,特别地,XML在Web应用中有下列用途:集成不同数据源、本地计算、数据的多种显示、支持Web应用的互操作和集成、基于语义的Data Mining。,七、XML在中国,1、NSFC2000年相关项目 基于XML的万维网动态信息整合研究 XML及其应用的基础研究 XML半结构化数据与结构化数据转换技术研究 XML文档管理系统的关键技术的研究 基于SQL的WebDB和XML数据源集成技术研究 IIE环境下基于过程管理的主动信息共享技术 面向商业广告主页制作的XML设计工具的研究与开发 基于可扩展置标语言XML的电子商务模型 健壮的分布式问题求解环境的开发方法研究 采用完整性限制扩充XML的参照机制,2、主要研究内容 XML本身及平台研究:解析器、语义 基于XML的应用 难点:语义及行业标准,3、XML解析器XML应用的核心是一个对具有良定义的XML文档进行解析的处理器,以便于可检索文档元素,转换为应用环境可理解的数据,且对文档进行语法和语义检查(validity and well-formedness)。东南大学正在实现基于DOM的XML解析器,QA,谢谢!,