XML技术及其应用概述·1·XML技术及其应用概述*吕腾黄琼湘闫萍新疆大学数学与系统科学学院830046关键词:XML电子商务网络安全数据集成1XML的发展历史可扩展标记语言XML(eXtensibleMarkupLanguage)[1]是一种简单灵活的文本格式的可扩展标记语言,起源于SGML(StandardGeneralizedMarkupLanguage),是SGML的一个子集合,也就是SGML的一个简化版本,非常适合于在Web上或者其它多种数据源间进行数据的交换。1969年,IBM公司开发了一种文档描述语言GML(GeneralizedMarkupLanguage),用来解决不同系统中文档格式不同的问题,并在1986年成为了一个国际标准〔ISO8879〕,这就是SGML。SGML是很多大型组织的文档标准,它是一种与语言无关的、结构化的、可扩展的语言,这些特点使它在很多公司受到欢迎,被用来创建、处理和发布大量的文本信息。1989年,在CERN欧洲粒子物理研究中心的研究人员开发了基于SGML的超文本版本,称为HTML(HyperTextMarkupLanguage)。HTML继承了SGML的许多重要的特点,比如结构化、实现独立和可描述性,但是它也存在很多缺陷,比如它只能使用固定的有限的标记,而且它只侧重于对内容的显示方面。随着Web上数据的增多,HTML存在的这些缺点越来越突出。W3C的成员认识到,必须有一种方法能够把数据本身和数据的显示分离开来,这样W3C在1996年提出了XML的概念。XML不仅保留了SGML的很多优点,而且更加容易操作以及在WorldWideWeb环境下实现。1998年,XML成了W3C的推荐标准。2XML的特点(1)自描述。XML是一种标记语言,其内容由相应的标记来标识,具有自描述的特点。(2)可扩展性。XML是一种可扩展的标记语言,用户可以定义自己的标记来表达自己的数据,具有强大的可扩展性。(3)内容和显示分离。XML文档只描述数据本身,而与数据相关的显示则由另外的处理程序来完成,具有内容和显示相分离的特点。(4)本地计算。XML解析器读取数据,并将它递交给本地应用程序(例如浏览器)进一步查看或处理,也可以由使用XML对象模型的脚本或其他编程语言来处理。(5)个性化数据视图。传递到桌面的数据可以根据用户的喜好和配置等因素,以特定的形式在视图中动态表现给用户。(6)数据集成。使用XML,可以描述和集成来自多种应用程序的不同格式的数据,使其能够传递给其它应用程序,做进一步的处理。3XML的技术规范XML并不仅仅包括XML标记语言,它同时还包括了很多相关的规范,比如文档模式技术、文档样式技术、文档查询技术、文档解析技术、文档链接技术以及*新疆大学博士基金资助。XML技术及其应用概述·2·文档定位技术等。基于XML的这些规范,还有很多高层的应用协议,比如SOAP(SimpleObjectAccessProtocol)和BizTalk等。(1)文档模式技术:DTD(DocumentTypeDefinition)[2]和XMLSchema[3]是XML文档的模式,用来对XML文档的逻辑结构进行定义。XML文档的模式规定了XML文档中的元素、属性、元素和元素以及元素和属性之间的关系。其中,DTD来自SGML,XMLSchema是专门为定义XML文档的模式而设计的,采用的是XML的语法。(2)文档样式技术:XML是内容(数据)和显示格式分离的语言,CSS(CascadingStyleSheets)[4]和XSL(ExtensibleStylesheetLanguage)[5]就是定义XML文档的显示样式的。其中,CSS是随着HTML的出现而产生的,控制XML文档的显示,但不会改变源文档的结构。而XSL是专门为XML设计的,不仅用来显示XML文档,而且可以把一个XML文档转化为另一个XML文档。(3)文档查询技术:W3C推荐的XML文档的查询语言是XQuery1.0[6]。XQuery起源于一种叫Quilt的XML查询语言,借鉴了XPath1.0、XQL、XML-QL、SQL和OQL等语言的优点。(4)文档解析技术:文档解析是指对XML文档的内容和结构进行访问和分析。文档解析技术包括文档对象模型DOM(DocumentObjectModel)[7]和SAX(SimpleAPIforXML)[8]。DOM是一种对平台和语言中立的接口,它是基于XML文档在内存中的树状结构,它的一个主要不足在于将整个XML文档装入内存所引起的巨大开销。而SAX使用事件驱动的XML解析,并不要求将整个XML文档一起装入内存。(5)文档链接技术:XML的链接功能比HTML更强大,它使用XLINK。XMLLinkingLanguage1.0(XLink)是W3C主导的定义XML链接的语法。一个XLink的描述信息,显式的指定了资源或部分资源之间的关系。在XLink中,并不涉及标示不同类型数据位置的方法,XLink需要依靠不同的机制来标识你想要链接的资源(例如统一资源标识符)。W3C推出了另一种叫做XMLPointerLanguage(XPointer)的机制用于构造XML文档的内部结构。它可以链接到一个具体的对象上去,这个对象可以是一个网页、网页的一部分、网页中的一个元素甚至是网页中某行的某几个字。(6)文档定位技术:XMLPathLanguage(XPath)1.0[9]是一种用于XSLTransformations(XSLT)1.0和XPointer中对XML文档各部分进行定位的语言。它给XSLT和XPointer提供一种定位语法,用来定位XML文件的各个部分。(7)其他XML技术:①MathML(MathematicalMarkupLanguage)2.0是一种用来描述数学符号、结构和内容的XML应用。MathML的目标是在Web上实现能像HTML处理文本一样,处理数学问题。②SMIL(SynchronizedMultimediaIntegrationLanguage)2.0是一种基于XML的表述多媒体演示的语言。SMIL允许将一组独立的多媒体对象整合为一个多媒体演示。③VML(VectorMarkupLanguage)是一种定义矢量信息编码格式的矢量标记语言,它是XML在矢量信息方面的应用。VML所定义的编码格式连同其它的标记一起描述了信息如何显示和编辑。④CDF(ChannelDefinitionFormat)允许Web发布者从任意的Web服务器经常地更新信息或是频道,以便这些信息能从Web服务器自动的传送到PC上的兼容接受程序或是其他的信息装置上。用户仅需选择一下频道,信息就会定时地传递到客户端。⑤XML片段交互XMLFragmentInterchange标准支持由若干实体组成的逻辑文档。XML片断交互使得客户端可以不用涉及整篇文档,就能在一篇较大的文档中获得文档片断所处的上下文信息。XML技术及其应用概述·3·⑥HTMLXHTML2.0MarkupLanguage是符合XML的HTML文档中的又一个家族。XHTML文档被设计成可以和XML处理器协同工作。XHTML文档是结构良好的XML,可以使用标准XML处理器对它们进行查看、编辑或验证。4XML的应用4.1XML在电子商务中的应用我们介绍几种基于XML的电子商务模型[10]:(1)点对点(P2P)的电子商务模型。用XML定义企业之间交换的信息,然后用XML消息直接进行信息的交换,这种方式是对传统电子数据交换EDI(ElectronicDataExchange)的直接扩展。典型应用有微软的BizTalk框架。(2)基于代理(agent)的电子商务模型。在点对点模型的基础上,增加一个代理程序。代理程序的作用就是自动在网络上找到有用的信息,并将其转发到本企业的数据库。典型应用有CommerceNet的eCo架构。(3)基于门户(portal)的电子商务模型。企业将各种不同的信息发布到相应的门户上,然后各自根据自己的需求到不同的门户上寻找本企业感兴趣的信息。另外,各门户还可以实现信息的共享和互联,具有很大的扩展性。(4)基于web服务的电子商务模型。Web服务是一种基于标准的应用集成方式,它可以将运行在通过Intranet、Extranet或Internet连接的分布式服务器上的应用集成在一起。也就是通过互联网的开放标准,实现业务流程的导航、搜索以及与其他应用的交互。典型应用有基于XML技术和标准的ebXML技术框架。4.2XML在网络安全中的应用可以用XML语言来描述web应用层的安全规范。下面是用XML文件来描述产品编号类型的一个例子,要求编号的形式是三个数字后跟A到Z其中的一个字母,或者是7个数字:?xmlversion=1.0encoding=UTF-8?xsd:schemaxmlns:xsd==qualifiedattributeFormDefault=unqualifiedxsd:simpleTypename=ProdNumTypexsd:annotationxsd:documentationaProductnumber/xsd:documentation/xsd:annotationxsd:restrictionbase=xsd:stringxsd:patternvalue=\d{3}〔A-Z〕|\d{7}//xsd:restriction/xsd:simpleType/xsd:schema4.3XML用于B2B数据的集成如webMethods公司(基于XML的企业间数据集成解决方案供应商)的D&BGlobalAccess平台,利用基于XML的web界面定义语言WIDL通过API从各种来源收集信息,XML应用程序DGX用作该平台客户端和服务器端之间的交换界面。4.4XML与数据库Oracle公司自从Oracle8i以来就增加了许多基本的XML特征,同样微软公司在SQLServer2000也支持XML的许多特征。另外象其它的数据库MySQL等也支持XML特征。5结束语XML作为Internet上一种主要的数据表示和交换标准,本文仅对其最基本的技术规范作了一个简单的介绍,对XML的应用也只是举例说明了其中的一小部XML技术及其应用概述·4·分。相信随着XML的不断发展,会有越来越多的相关技术规范产生,也会有越来越多的其它应用涌现。参考文献〔1〕TimBray,JeanPaoli,andC.M.Sperberg-McQueen.ExtensibleMarkupLanguage(XML)1.0,W3CRecommendation.,1998.〔2〕JonBosak,TimBray,DanConnolly,EveMaler,GavinNicol,C.Michael,LaurenWood,andJamesClark.GuidetotheW3CXMLSpecification(XMLspec)DTD,Version2.1.〔3〕HenryS.Thompson,DavidBeech,MurrayMaloney,andNoahMendelsohn.XMLSchemaPart1:Structures.W3CRecommendation,2May2001,〔4〕CascadingStyleSheetshomepage.〔5〕SharonAdler,AndersBerglund,JeffCaru