首页 XML在关系数据库中存储技术研究.pdf

XML在关系数据库中存储技术研究.pdf

XML在关系数据库中存储技术研究.pdf

上传者: 贺伟 2011-12-26 评分1 评论0 下载29 收藏0 阅读量125 暂无简介 简介 举报

简介:本文档为《XML在关系数据库中存储技术研究pdf》,可适用于专题技术领域,主题内容包含譬iz参疆魄。雾囊号UI)£每组:缡号:埘”带幽恭譬硕士学位论文XML在关系数据库中存储技术研究叶开珍哥一*矗盟P弥:叶小平副教授##!计算机款件与符等。

譬iz参疆魄。雾囊号UI)£每组:缡号:埘”带幽恭譬硕士学位论文XML在关系数据库中存储技术研究叶开珍哥一*矗盟P弥:叶小平副教授##!计算机款件与理论二帅t十一H=十=L:XML在关系数据库中存储技术研究计算机软件与理论叶开珍叶小平副教授摘要HTML作为Internet上传统的描述语言随着网络应用的深入其局限性逐渐显现XML已经成为互联网上数据表示和数据交换的标准格式。随着XML数据的增加如何有效地存储和管理XML文档成为一个非常重要的问题。目前主要的存储方法有:XML原生数据库、面向对象数据库、关系数据库等。关系数据库由于技术成熟、应用广泛成为目前研究的热点。早期大多数研究是基于DTD模式开展的但DTD缺乏对文档结构、属性、数据类型等约束的足够描述。另外由于XML数据和关系数据在组织上的差异对于多值元素、递归元素以及混合内容元素的映射等难点问题也一直没有得到有效的解决。因此本文开展了基于XSD模式的XML文档到关系数据库的存储技术研究。论文的主要工作包括:()在借鉴基于代价的pSchema存储模型的基础上提出了ESchema存储模型。ESchema是与XSD等价的XML模式文件主要对PSchema从以下方面进行改进和扩展:一是消除了多值元素、可选择元素、嵌套元素二是保留了约束信息如关键字、唯一性等等。()实现了从ESchema到关系模式的映射和XML文档到关系数据库的存储。ESchema因为结构简单保留了约束信息因此可以更加容易、更加准确地映射到关系模式。最后从实验上证明了ESchema的可行性和有效性。关键字:XML:存储:关系数据库:XSDTheStudyofXMLStorageTechniqueinRelationalDatabaseComputerSoftwareandTheoryYeKai.ZhenAssociatePro£YeXiaoPingABSTRACTHTMLasatraditionaldescriptionlanguageontheInternetitslimitednesshasbecomemoreandmoreapparentwiththedeepUSeofwebapplicationsXMLhasakeadybecomethestandardformatfordatapresentanddataexchangeontheInternet.ButwiththeincreasingUseofXMLdataitisanimportantproblemofhowtostorageandmanagetheseXMLdocuments.Threemainmethodsareasfollow:nativeXMLdatabaseobject.orienteddatabaseandrelationaldatabase.RelatinnaldatabasehasbecomethedominantapproachUptonowaccordingtoitsmaturetechniqueandwideapplications.ThemajormappingmethodsexistednowuseDTDasitsschema,butDTDhcksabilitiesdescribingXMLdocument’Sstructureattributesanddatatypesefficiently.MoreoverduetothegreatdifferencebetweenXMLdataandrelationaldatainstructuresomedifficultproblemssuchasmultivalueelementmappingrecursiveelementmappingandmixcontentelementmappingarenotresolvedeffectively.Inthisthesis.IfocusontheresearchofXMLdocumentthatisbasedonXSDstoredinrelationaldatabase.Theprimarytasksofthepaperareasfollows:()BasedonthecostbasemappingmodelPSchemaIbringforwardESchema.ESchemaisanequivalentexpressionofXSDandhasmadesomeimprovementandexpansiontoP.Schema.Oneisaboutmultivaluemapping,recursionmappingtheotherisconstraintpreservedsuchaskeyanduniqueness,ere.()CompletethemappingfromESchematorelationalSchemaandtheloadingfromXMLdocumenttorelationaldatabase.BecauseofsimplicityandsemanticpreservedESchemacanhemappedintorelationaldatabaseeasilyandefficiently.AtlastESchemaisprovedtobeefficientandfeasiblethroughExperiment.Keywords:XMLstoragerelationaldatabaseXSD论文原创性声明本人郑重声明:所呈交的学位论文是本人在导师的指导下独立进行研究工作所取得的成果。除文中已经注明引用的内容外本论文不包含任何其他个人或集体已经发表或撰写过的作品成果。对本文的研究作出重要贡献的个人和集体均已在文中以明确方式标明。本人完全意识到本声明的法律结果由本人承担。学位论文作者签名.叫彳晦同期:硼年/月码日f’学位论文使用授权声明本人完全了解中山大学有关保留、使用学位论文的规定即:学校有权保留学位论文并向国家主管部门或其指定机构送交论文的电子版和纸质版有权将学位论文用于非赢利目的的少量复制并允许论文进入学校图书馆、院系资料室被查阅有权将学位论文的内容编入有关数据库进行检索可以采用复印、缩印或其他方法保存学位论文。保密的学位论文在解密后使用本规定。学位论文作者签名:、才力才吼砰『『月碍日导师签名:计J.予月吁朋年J扒期日.研究背景第章绪论HTML(HyperTextMarkupLanguage超文本链接标记语言)作为Internet上传统的描述语言取得的巨大成功有目共睹。但随着网络应用的深入其局限性逐渐显现如难以扩展、缺乏交互性、缺乏语义性定义等等。人们需要一种能够结构化地表示信息并支持网络跨平台应用和数据交换的标准网络语言来满足各种应用和通信的需要。可扩展标记语言(eXtensibleMarkupLanguage简称XML)正是在这样的背景下诞生的。年月WorldWideWebConsortium(WC)协会正式推出了XML这是一种可以用来创建标记语言的元语言是SGML(StandardGeneralizedMarkupLanguage)的一个精简子集。它保留了SGML的一些特点并克服了HTML的局限性。相对于HTML)(ML主要有如下优点:具有良好的可扩展性。HTML的标记是预定义的具有固定的名称及语义不能扩展而XML的标记可由用户定义可以被任意地扩展。XML允许开发各种不同专业(如音乐、化学、数学等)的特定领域的标记语言。有了这些语言这个领域的实践者们可以自由地交换短文、数据和信息而不必担心对方是否利用特殊的、专用的软件来创建数据。目前已经开发出了一些特定领域的标记语言如MathML(用于数学领域的一种标记语言)。提供了一种灵活的数据描述方式实现了结构、内容和显示相分离。文档类型定义(DTD)或XML模式(XMLSchema)描述了XML文档的结构即元素间的嵌套关系。而)(ML文档实例只描述数据使得数据具有独立性。XML文档的显示具有多样性XML文档的显示是由XML文档配合XSL(eXtensibleStyleLanguage)来完成的因此对同~个xML文档可以根据应用的需要以不同的风格显示。具有自描述性。XML文档通常由文档模式描述文件和实例文件组成前者用于描述XML实例文件所能使用的标记、标记的结构、标记的含义等而实例文件则使用这些预定义的标记描述数据。因此XML中的标记一方面限定了元素的层次结构另一方面也说明了元素的含义。这使得XML具有机器可读性具体应用可以按照各种方式解析、过滤及重构XML文档。简单易于处理。XML足够简单易于阅读和编写又易于被应用程序处理这使锝它成为在不同的应用闻交换数据的理想格式。支持高级搜索。因为可以知道文档内容的结构和含义所以很容易在XML文档中进行搜索。在Internet上如果网页是XML格式的则不仅可以搜索数据还可以在搜索中加入与数据相关的上下文信息这样搜索会更加精确、高效。综上所述xML的优点在于采用简单、柔性的标准化格式表达数据和在应用程序间交换数据XML的强大之处在于将用户界面和结构化数据相分离允许不同来源的数据无缝集成以及对同一数据的多种处理。因此XML正迅速取代HTML成为网上数据表示和数据转换的标准格式。然而XML对数据的处理能力却相当有限如快速查找、修改等。随着互联网上XML文档的急剧增加如何对XML文档进行有效的存储和管理成为一个急需解决的问题。对XML数据存储管理技术的深入研究将有力促进企业的信息化和电子商务的发展具有巨大的应用前景和经济效益。.研究现状及存在问题分析..I国内外研究现状随着网络上XML数据的广泛应用人们开展了许多有关YJdL文档存储的研究工作。按数据存储系统的不同目前主要有以下几种存储方法:基于文件系统的存储XML原生数据库XML使能数据库混合数据库。下面简要介绍各种存储方法的优缺点。(一)基于文件系统的存储此种方法直接把XML文档作为磁盘文件进行存储是最简单但缺点也最多的一种存储方法。当要进行数据查询、更新等操作时效率极为低下。所以要实现对XML数据查询、更新等数据管理功能一般不考虑直接以文本文件的方式存储。(二)XML原生数据库(NativeXMLDatabaseNXDB)NXDB是专门对XML格式的数据进行存取管理的数据库系统兼有一般数据库的特性例如支持事务、并发控制、查询语言、安全机制、二次开发接口等。基本存储单元是XML文档这种数据库维持原有文档的数据结构和相关的元数据而不关心数据的底层存储格式只能通过XML特有的相关技术对数据进行存储。由于内部采用的是标准的瑚L格式存储时不需要进行格式的转换因而可以充分发挥XML的优势效率比较高。近年来出现了一些这样的数据库系统如美国斯坦福大学丌发的Lore系统lll德国SoftwareA公司开发的第一个商用纯XML数据库系统TaminolJdbXMLGroupLLc公司的dbXML美国eXeelon公司的eXcelon等等。然而XML原生数据库缺乏细粒度的数据处理能力不适合于处理数据集中的XML文档。同时这样的系统还不成熟数据处理的效率也差强人意。(三)XML使能数据库(XMLEnabledDatabase.XEDB)XEDB是在已有的关系数据库系统或面向对象数据库系统的基础上扩展了XML支持模块完成XML数据和数据库之间的格式转换和传输。其基本数据存储单位是XML文档中的数据而不是XML文档。l、面向对象数据库面向对象数据库利用XML给出的类型信息构造类层次结构该方式的数据模型更接近半结构化数据模型并能更好地处理嵌套的集合和顺序因此其数据存储和查询处理可以用来提高XML或半结构化数据处理的效率。一些针对XML的面向对象数据库纷纷推出如XMLRepositoryl是由ozonedborg开发的一种带有公开源代码性质的XML数掘库该数据库建立在ozone面向对象数据库和MonsterDOM技术的基础之上。但面向对象数据库在数据加载时对未知的数据类型需要建立新的类对应这样就影响了加载效率当XML改变时数据模式的变动代价也很昂贵。虽然面向对象数据库的体系结构非常适合存储XML数据但它本身还不够成熟完善限制了其应用范围。、关系数据库在关系数据库中XML数据是以行和列构成的二维表的形式来存储的。当XML同关系数据库相结合时一般需要将XML文档按元素层次结构拆分后依次存入数据库中的相应字段。显然这样一来XML文档的整体性将受到破坏除非有一个预先设定的小程序对数据库中数据进行整合否则XML数据将变成一团糟。用关系数据库存放XML文档主要有以下优势。首先同对象数据库和原始XML数据库相比关系数据库具有数据结构化、最低冗余度、较高的程序与数据独立性、易于扩充、易于编制应用程序等优点。关系数据库已发展地非常成熟能够提供对大量数据进行高效存取的技术手段。其次目前大量的数据都是存储在关系数据库中。现在流行的数据库绝大多数是关系数据库如SQLServerDBOracle等都是第三代的关系数据库。因此如果XML数据能够以关系的形式存放就可以实现对数据的统一管理最大限度地利用关系数据库现有的存储管理、并发控制、恢复、版本机制等技术来有效地管理数据。因此XML在关系数据库中的存储成为研究的热点。在国外与关系数据库相关的存储技术引起了从高校科研院所到商业数据库公司从政府部门到自由撰稿人的广泛关注{'.只o。根据关系模式的生成方法目前主要有模型映射方法和结构映射方法。这部分内容在第三章有详细介绍。相比之下国内相关研究则起始于新世纪之初一些大学及有实力的软件公司、科研所都进行了相关的研究。如因科公司的因科)【llL网关【】成功实现了XML和传统关系数据库的实时转化和交互以及XML文件和VoiceXML、WML等之间的实时自动翻译等中科院软件研究所的XML与关系数据库转换系统Xtrans也实现了XML文档到关系数据库数据以及从关系数据库数据到文档的双向转换。另外也有很多学者开展了相关的研究【蚓。许多主流的数据库厂商如微软、Oracle、IBM和Sybase等也都在把XML支持结合到其产品中或者提供可在其数据库中使用的XML工具。如:SQLServer是将XML文档存储在关系表中通过FORXML子句将关系数据库中的查询结果以XML文档的格式返回通过使用OPENXML子句将XML数据插入关系数据库。Oraclei将XML文档存储为对象关系实例其优点在于能够支持XML中复杂的数据类型。Oraclei还提供XML文档的另一种存储方式就是以文档方式存储其不足之处在于不能够充分利用关系数据高效的存取技术。(四)混合数据库(HybridXMLDatabaseH)【DB)HXDB主要是一种系统集成技术其目的是综合XEDB和NXDB的优点但其底层并没有一种统一的数据库模型。OraclelOg中引入的XMLDB技术是HXDB的典型代表。综上所述XML文档数据属于半结构化数据将它存储在原生XML数据库或是面向对象数据库是很自然且易于实现的但XML原生数据库和面向对象数据库技术还不够成熟与完善限制了其应用范围。基于关系数据库技术的成熟与其应用的广泛性把XML数据存储到关系数据库中是目前研究的热点。..现有研究存在的不足通过对国内外大量研究项目及其技术文献的阅读分析结合作者的研究实践发现:XML在RDB的存储技术目前仍处于研究阶段主要存在以下不足:问题一:国内外大多学者对于XML在关系数据库中存储技术的研究是基于早期DTD、xMLQL等非XML技术标准开展研究的。随着XMLSchema、XOuery国际标准地位的确立以及其自身强大的功能必将取代DTD、XMLQL而得到普及应用。而目前基于XMLSchema、Xquery的研究仍处于初步研究阶段。因此基于上述标准开展高起点的研究工作显然是非常必要的。问题二:基于XMLSchema的映射方法仍然存在很多问题在映射过程中的问题主要集中在以下几个方面:如何处理重复出现的元素如何处理嵌套元素、递归元素如何保留数据语义约束信息。由于数据语义约束信息在提取、映射、转换等方面的困难造成现有的XML与RDB之间的静态模式映射算法大多只注重数据结构的正确转换忽略了数据语义约束的完整保留而数据语义约束包含了数据完整性、数据之间的依赖性等重要信息在数据集成、数据有效性验证、数据语义完整性等方面具有重要的意义。.论文的主要内容本论文主要针对XML在关系数据库中存储的上述问题开展了XML文档在关系数据库中的存储技术的研究工作。PhilipBohannon在文献【ll】中提到的基于代价的LegoDB存储系统中介绍了对XMLSchema进行改写的pSchema(PhysicalXMLSchema)模型’通过分析发现PSchema有对XML数据提取不够明确、不够完善的缺点。因此本论文对PSchema进行改进和扩充提出了ESchema(ExtendedXMLSchema)模型。ESchema是XMLSchema简化后的XML模式文件它比较好地处理了XSD中的多值元素、嵌套元素、选择元素而且一定程度上保留了数据约束信息对XML的提取更加明确、更加完善。由于ESchema结构简单只包含复杂元素和简单元素也使XML文档到关系数据库的存储更加容易、更加高效。最后根据ESchema模型做了相关的模拟实验从实验上验证了ESchema模型的可行性和有效性。本论文的主要研究内容是:、对XMLSchema进行结构和语法分析重新对提取信息分类从更深的层次实现对元素信息的提取使信息提取更加明确。、实现在关系数据模型中保留XML数据的约束信息如关键字、唯一性、默认值等使信息的提取更加完善。、实现了ESchema模型到关系模式的映射和XML文档到关系数据库的映射从实验上论证了ESchema模型的可行性和有效性。但由于时间关系本论文的研究还存在一些不足之处:、XML文档到关系数据库的映射最重要的是XML文档的可恢复性。论文只做了XML文档到关系数据库的映射没有对关系数据库到XML的映射进行研究。没有验证映射后XML文档的可恢复性。、本文的模式映射方法是基于固定结构的XMLSchema展开的没有考虑瑚LSchema变动的问题。当xMLSchema变动时对应的关系模式也随之变化如何调整关系模式以适应变动后的XMLSchema及如何保证存储在关系数据库中的数据的前后一致将成为下一步工作中要解决的重要问题。、实验中的部分算法有待改进提高其执行效率。论文围绕为什么做、做什么、怎么做、做得怎样四方面展开论述。第章介绍为什么做第、章分析应该做什么第、章介绍怎么做第章总结做得怎样。论文主要章节安排如下:第章绪论。介绍了XML技术的优点通过对目前国内外各种x^lL存储技术的优缺点进行分析提出了本文的研究内容:基于XSD模式的瑚L文档在关系数据库中存储技术的研究。第章XML技术。简要介绍论文所涉及到x札技术。第章XML在关系数据库中的存储技术。总结了目前XML在关系数据库中的多种存储技术同时详细介绍了PhilipBohannon提出的PSchema模型分析优缺点确定本文的研究重点。第章改进的ESchema模型。针对PSchema模型存在的缺点进行改进和扩展从理论上介绍了ESchema模型的主要思想。第章实验验证。从实践上对ESchema模型的主要思想进行了验证。介绍了模拟实验中的硬件软件环境、主要技术以及实验主要流程对实验结果进行了分析。第章总结。总结论文的主要研究内容和存在的不足之处。.本章小结本章主要说明论文的研究背景、研究现状和研究内容。首先介绍了XML的特点指出XML文档的存储问题急需解决接着对国内外主要XML文档存储技术的优缺点进行分析提出了XML在关系数据库中存储技术是研究热点。通过对该领域国内外的研究状况进行分析指出目前存在的主要问题从而定位本论文的研究重点最后说明论文的研究内容和章节安排。.XML的语法第章XML技术煳L的基本语法十分简单易学和HTML很相似但HTML只允许使用固定的标记而XML允许创建新标记来更准确地描述数据。从逻辑上讲瑚L文档由声明、元素、属性、注释、字符、处理指令等构成。一个x札文档首先应当是“格式良好的”也就是说按照WC制定的XML标准语法或语义是正确的格式不是良好的文档不能被接收处理浏览器无法正常显示。格式良好的捌L文档简化了解析器的内部代码加快了文档解析速度。下面结合图介绍XML的语法规则。这个例子中出现的逻辑要素有:第行是XML声明第行是注释第行是处理指令第行是文档中的各个元素。<琶‘veroioz卢’.’encoding=玎P电’standalm艟I聃’>s<!editedwith簟XLSPY>‘(々dtwa"hpRepⅡt.订>I<expensezepo£txn:xsi:http://..org/力aLschea妇t搬ex=i:noH弧e卵aceSch弧aLocatio庐蚀pRep吁t.z|ddetailed:false’totalsu喊=’.’>l<Peron>t<First>Pred</Fizst><Lst>Landiz</Last>‘<Title>Pzoject|aPa<lTitie>(.。hone>Z盱<协one>,<EaXl>f.andi嘲anonuli.corn</Email>s《^’erson>,<expenseitemtype=’LodtirⅦ’eto=。Sale’>,<Date>OI</Date>,<expense></expense>,‘lexpenjrites><“p眦srit“type=’LodeCug’哪to=。Development。><Date>i</Date>,<expense>.</expense>,<description>Playedpennyazcade(/descziption>,</expenseitem>=</expensexeport>图娜L实例文件ExpReport.xmll、】(ML声明图第l行是完整的潮L声明一个xML文档最好以一个瑚L声明作为开始。XML标记说明它是一个删L文档version属性表明XML的版本号为.encoding属性表明编码标准standalone取yes表明该文件是独立的即没有指定外部的实体也没有使用外部的模式取No表示引用了其它外部)(lL文件。、元素元素是XYL文档的基本单元。从语法上讲一个元素包含一个起始标记、一个结束标记以及标记之问的数据内容。其形式是:<标记>数据内容</标记>对于标记有以下语法规定:()标记必不可少。任何~个格式良好的)【ML文档中至少要有一个元素。但一个XML文档中有且仅有一个根元素其他所有的元素都必须包含在根元素之内。图中expensereport是文档的根元素。()大小写应一致:XML对字母的大小写是敏感的<Person>和<person>是完全不同的两个标记所以结束标记在匹配时一定要注意大小写一致。()起始标记和结束标记应当匹配结束标记是必不可少的。如<Person>和</Person>相匹配。当一对标记之『日J没有任何文本内容时可以不写结束标记。如<First></First>可以写成<First/>。这样的元素称为”空元素”。()元素应当正确嵌套:子元素应当完全包括在父辈元素中。下面的例子就是嵌套错误<A><B></A></B>正确的嵌套方式如下:<A><B></B></A>。()标记命名要合法。标记名应该以字母或下划线(一)或冒号(:)开头后面跟字母、数字、句号、冒号、下划线或连字符。”但是中间不能有空格而且任何标记名不能以”xml“(或者”xml”大小写的任何组合如”XML”、”xML、”xmL“等等)起始。、属性属性是依附元素存在的。属性的形式为:属性名=属性值。属性名和元素名有相同的构造规则属性值必须包括在引号中。如:Currency=”USI)”。一个元素中可以有任意数目的属性但是不允许重复。、CDATA段在标记CDATA下所有的标记、实体引用都被忽略而被XML处理程序一视同仁地当作字符数据看待。CDATA的形式如下:<!CDATA文本内容>。CDATA的文本内容中不能出现字符串”>。另外CDATA不能嵌套。、注释有些时候人们希望在XML文档中加入一些用作解释的字符数据并且希望XML处理器不对它们进行任何处理这种类型的文本称作注释文本。在XML中注释的方法与HTML完全相同用”<卜一”和L一>”将注释文本引起来。、处理指令处理指令是用来给处理XML文档的应用程序提供信息的煳L分析器把这些信息原封不动地传给应用程序由应用程序来解释这个指令遵照它所提供的信息进行处理。处理指令应该遵循下面的格式:<处理指令名处理指令信息>.XML的模式ⅫL文档是一种结构化的标记文档。创建)(lL文档之前首先要确立其元素和结构再根据结构的定义填入实际的内容形成一个XML文档。XML结构文件有两种定义方式即文档类型定义DTD(DocumentTypeDefinition)和模式定义XSD(XMLSchema)。(一)文档类型定义DTDDTD的产生源于SGML是最早也最成熟的XML文档模式语言。DTD描述了一个XML文档有哪些元素和属性组成它们在文档的什么位置出现及出现的次数、元素的嵌套关系等。但DTD存在如下的缺陷:、DTD使用一种完全不同于)【ML的特殊规范来定义XML中的各种符号不仅编写困难还需要专门的解析器而不能和XML的解析器通用。、DTD的数据类型有限不能够表现数据库中复杂的数据。、DTD不支持名域易与元素名发生冲突造成一个XML文档只能与一个DTD文档相对应。如果想引用多个DTD文档必须通过参数实体进行复杂的转换工作而且还很容易出错这一缺陷对于数据库表之问复杂的关系而言是不可容忍的。(二)模式定义xSD在XSD推出之前已经开发了四种模式语言分别是XDR(删LDataReducedXML数据简化)、DCD(DocumentContentDescription文档内容描述)、SOX(SimpleoutlineXML简单XML摘要)和DDML(DocumentDefinitionMarkupLanguage文档定义标记语言)。XSD是WC于年月正式发布的标准XSD一确定下来立刻成为全球公认的首选XML环境下的建模工具。XSD的特点在于:lOl、XSD是用XML语法编写的使得软件工具可以通用无需两种装备同时在程序编写上将更为方便直接。例如可通过DOM接口访问元素和属性。、XSD数据类型更加丰富可以将元素和属性定义为int、date、Boolean等简单或复杂的数据类型此外还能够自定义数据类型。而DTD除了只能提供很粗糙的PcDATA数据不能够提供对复杂数据类型的验证不提供自定义数据类型。、XSD可以随时更新它的内容模型而DTD的内容模型是封闭的。、XSD利用名域将特殊元素和Schema文档链接使一个XML文件可对应多个Schema文档具有良好的可扩展性可以定义复杂的数据关系。图所示XML文档对应的模式文件为ExpReport.xsd如图所示。下面结合图说明XSD文件的元素构成。<rmlversion=’.’enco曲j萨’U下。"><x:schemaxmlnstxs=飞ttp:/^rw诈.or‘/力口包sd埠m><xs:elementnae=’expenserepozt’><xs:annotation><xs:docmentation>expenserepartistherootelement.</xs:documentation></xo:annotation><xs:coBplexType>(xs:sequence><xs:elementnane=’Person’><xs:complexType><xs:sequence><xs:eleaentnale=’First。type=’x。:string’></xs:complexType></xs:element><xs:elementzef=。e印enseitem"RaxOcctⅡS=’Ymbounded/></xs:sequence><xs:attributenne=。detailerType=’xu:boole’USe=’requxred’/><xs:attxibuten强e’totalguJ’type=Is:decimal’use=’req血ed/><^s:complaxTyDe></xs:element>图)几模式文件ExpReport.xsd、schemaschema元素是)(MLschema中第一个出现的元素用于声明该XML文档是一个schema文档。schema元素具有两个属性name指定该schema的名称而xmlns则指定该schema包含的命名空间。、数据类型XMLSchema支持两种数据类型:简单数据类型(simpleType)和复杂数据类型f=玉m如艮出“&吼幻n垃M坫坩"培垮缸(complexType)。complexType类型的元素可以包括子元素和属性而simpleType类型的元素既不能包含予元素也不能包含属性。XMLSchema不但内置了种简单数据类型同时也可以对simpleType和complexType这两种类型傲进一步的扩充。如可以声明simpleContentemptyContentmixContent和anyContent等属性对元素的内容和结构所做的迸一步的描述。、element在XMLSchema中用(element)来定义元素。在(element)中包括nalle、type、minoccurs、maxoccurs等属性。name记录元素名type表示元素的类型既可以是简单类型也可以是自定义的复杂类型minoccurs和maxoccurs表示元素在xML实例文件中出现的最小次数和最大次数默认值均为I。、attributeattribute元素用于定义在schema文档中出现的属性。在<attribute)中包括Flame(属性名)、type(属性的类型)、use等属性。use用来指定属性的默认值可以是“Fixed”、“optional”或“Required”分别表示该属性有一个确定的默认值、该属性可以有默认值和该属性必须在元素中出现。、groupgroup元素用于将x札文档中的元素分组。通过元素sequence可指定该分组中的元素或子分组的顺序通过minoccurs和maxoccurs分别指定该分组在XML实例文档中出现的最少和最多次数。、choice(choice>相当于DTD中的“l”。在<choice>(/choice>中出现的元素或元素维只能有一个出现在对应的XML实例文件中。、sequence在XMLSchema中将<sequence></sequence>包括的一系列元素成为一个系列系列中的每个成员在对应实例中出现的顺序与其在系列定义中的顺序相同。、annotationannotation元素包括documentation和appinfo两个子元素分别对基本Schema信息和版权信息及工具、样式单和其它应用程序的信息进行描述。.XML的显示XML的一个最重要的特征是把内容和显示格式分开。这样做带来很大的好处可以让不同的用户按照各自希望的格式显示同一XML文档的内容这也就意味着XML文档本身并没有关于格式方面的信息。为XML文档提供格式信息的是样式表。样式表可以控制文件内容在显示时的版面风格如页面的边距、各式标题及文字的字体、颜色、对齐方式等。对同一份XML文档使用不同的样式表就可以得到不同的输出效果这特别适合于将文档表示在不同的场合如显示、打印、出版等。适用于XML文档的样式表语言有层叠样式表CSS(CascadingStyleSheetsLevel)和可扩展样式表语言XsL(extensibleStylesheetLanguage)。(一)层叠样式表CSSCSS是一种比较简单的样式表语言既可以用于HTML文档也可以用于XML文档。CSS用简单的语法描述元素的显示格式决定了页面的视觉外观但是不会改变源文档的结构。而XSL是专为XML设计的样式表语言它使用XML的语法但综合了DSSSL(DocumentStyleandSemanticsSpecificationLanguageSGML文件的样式表)和CSS的特点。XSL的优势在它可以用于转换当然XSL也可以把XML文档转换为HTML格式。而且同一个样式表可以用于多个具有相似树结构的文档。(二)可扩展样式表语言XSL严格说来XSL包含部分:XSLT、XPath和XSL格式化对象。XSLT是一种用来将瑚L文档转换成其他类型文档或其它XML文档的语言。XPath是一种对XML文档进行寻址的语言。格式化对象是将一个XSL转换的结果变成适于读者或听众使用的输出格式的过程。XSLT是XSL标准中最重要的部分它用于将一个XML文档转换成另一个XML文档或另一种类型的文档也就是将一个XML文档转换成浏览器所能识别的一种格式。通常XSLT将每个糊L元素都转换成一个HTML元素。XSLT还可以向输出文件中增加全新的元素或去掉一些元素。它可以重新安排这些元素并对元素进行分类测试并确定显示哪些元素等等。XSLT内部使用扩展的XPath语言来定位XML文档的某个部分。Xpath是为XML定义的查询语言它提供在文档中选择结点子集的简单语法识别XML文档的某个部分它还提供了操纵字符串、数字和布尔值的函数。XPath利用位置路径来为XML文档的不同部分进行寻址位蜀路径类似于操作系统的目录提供了指令来定位到文档中任何地方。位置路径分为绝对位置和相对位置绝对位置指向文档结构中某个特定的位置相对位置则指向文档中某个依赖起始位置而定的位置。例如XPatb表达式“../bib/book/year”表示从文档根开始选择所有bib子元素然后选择bib元素的所有book子元素最后选择book子元素的所有year属性。处理XSL样式表的是XSL样式表处理器样式表处理器接受一个XML文档或数据以及XSL样式表输出特定样式的显示其显示格式根据XSL样式表确定。这个处理过程分两步进行首先从XML源树构建一棵结果树这一步称为树转换然后翻译结果树产生所需的显示。XSL的工作原理如图所示。.XML的查询图XSL的工作原理xQuery(XmLQueryLanguage)是在xML数据中搜索特定信息的功能强大的新方法。与XPath.的起源相同XOuery的某些方面与传统XPath表达式看上去很相似而其它方面(如FLWR和条件语句)则是全新的。XQuery是XML规范和WC建议书之间相互关系的优秀示例。Xquery工作组与XSL工作组还一起负责XPath.工作草案XPath.将包括许多为XOuery开发的功能。除了对XPath的增强外XQuery还允许您通过嵌套类SOL的子句来创建复杂查询以及通过将XML构造器直接包括在输出中来创建复杂结果。全新的FLWR是FoRLET一删ERERETURN的缩写它描述了典型XQuery的结构。在FLWR语句中数据被绑定到变量然后在后续步骤使用该变量。例如使用下面的语句:forSbookindocument(”http://刑.bn.com/bib.xml”)//booklet$title:=$book/titlewhere$book/publisher=’AddisonWesley’return<bookInfo>{$titleJ</bookInfo>该语句返回原始文档中每个book元素的bookInfo元素其中book元素的publisher子元素为“AddisonWesley”每个booklnfo元素都有title子元素如下所示:<booklnfo><title>TCP/IPustrated</title></booklnfo><booklnfo><tite>AdvancedProgrammingintheUnixenvironment</title></booklnfo>.XML的数据接口(~)DoM同HTML一样XML是层次格式的数据数据元素可以嵌套在其它数据元素中并且数据元素可以依附于它们的属性。lX)M(DocumentObjectModel文档对象模型)是由WC提出的标准化的编程接口。DOM是一组对象的集合通过操纵这些对象程序员能操纵xML数据。利用DOM中的对象可以对文档进行读取、遍历、修改、添加以及删除等操作。DOM最重要的特性是必须将整个文档解析并存储在内存中以便建立这个数据结构。这个特性对某些应用程序而言是有影响的这些应用程序必须在大型的文档或完整的文档处理结束之后才能运行。另外许多DOM工具都需要很多内存一些甚至需要占用百分之百的内存远远超过了文档的原始尺寸。DOM对于那些需要对一篇文档的不同部分重复、随机访问的应用程序来说非常有效。(一)SAXSAX(SimpleAPIforXMLXML简单应用程序接口)提供了一种对XML文档进行顺序访问的模式这是一种快速读写XML数据的方式。当使用SAX分析器对XML文档进行分析时会触发一系列事件并激活相应的事件处理函数从而完成对XML文档的访问所以SAX接口也被称作事件驱动接口。SAX接口之所以叫做“简单应用程序接口”是因为这个接口确实非常简单绝大多数事情分析器都没有做需要应用程序自己去实现。它的基本原理是由接口的使用者提供符合定义的处理器XML分析时遇到特定的事件就去调用处理器中特定事件的处理函数。SAX和DOM是两种最流行的应用于XML的编程接口这两种技术的根本差别在于客户应用程序得到XML文档数据的方式不同。SAX是事件驱动模型这意味着当解析器识别出文档特性时客户应用程序不断地接受到通知。而相反地DOM模型是基于对象的整篇XML文档作为分层次排列的对象来解析和存储客户应用程序可以随机访问这些对象。客户应用程序的特性决定该客户应用程序采用哪种方法比如XML数据被用作实时消息发送协议那么事件驱动可能是适合的然而对于XML文档用作一个简单数据库的应用程序来说对象模型可能更适当些。表对SAX和DOM数据接口进行了比较。表SAX和D咖的对比SAXDOM解析时不从XML文档中存储数据创建一个位于内存中的文档树副本不支持对XML文档数据的修改和编写位于内存中的文档树是可以修改的必须在客户应用程序可用文档树建立在解析时文档的数据是可用的之前解析出完整的文档.本章小结本章简要介绍了XML的基本技术。首先结合实例介绍了XML的语法规则比较了XML模式DTD和XSD的优缺点接着介绍XML的显示方法层叠样式表CSS和可扩展样式表XSL最后介绍了用来对XML进行查询的Xquery语言以及两种最流行的应用于XML的编程接口DOg和SAX。这些基础概念与知识是本论文研究工作的理论与技术基础。第章XML在关系数据库中的存储技术.XML与关系数据库技术比较从数据管理的角度来看XML数据XML可看作具有层次结构的半结构化数据其组织单位是XML文档。而关系数据库是为存储和管理结构化数据设计的其存取数据的模型是扁平的二维关系表。为了更好地实现在关系数据库中存储XML数据先了解以下它们各自的特点文献从多个方面对XML与RDB进行了较为深入的比较如表所示。表Ⅺ也与RDB的技术比较比较指标XMLRDB数据存储文件系统数据库系统相数据访问不关心物理结构只关心逻辑组织似模式描述D’DXMLSchema关系模式性逻辑接口SAXDOMODBCJDBC检索语言XQueryXMLQLSQL安全性差具有健全的安全机制并发访问无稳定可靠的并发访问RDBInternet数据表达的事实应用情况现在的主导数据管理方法的标准优具有发展前景处于研究应技术成熟度技术成熟势用状态操作效率较低较高修改语言尚无标准规范SQLXML语义表达自描述数据字典、技术文档的优数据交换范围纯文本跨平台受DBMS和OS限制势(续表)需要开发专用程序才以Internet应用支持直接的Internet应用XML将数据应用到nternet的结构化、半结构化、描述范围结构化数据优非结构化数据势基于命名空间机制可以唯名字冲突无法有效避免一命名通过以上的比较可以发现:一方面XML在数据交换方面的自描述、可扩展性等优势使其适于充当Internet环境下数据描述标准与异构应用间数据交换载体的角色。但XML缺乏象RDB那样有效的数据管理手段存在着数据管理困难、操作效率低、安全性差的隐患从而制约了基于XML的数据管理技术的发展和应用。因此XML客观上需要一种有效的存储、检索和修改等方面的管理机制。另一方面RDB在数据管理方面具有数据操作速度快、效率高、安全性好并发访问控制好、技术成熟、应用广泛等优点作为底层数据管理方式具有一定的优势但客观上需要提出一种灵活的数据应用方式以便将数据有效地发布到Internet环境消除平台差异、实现更大范围的数据交换与信息共享。把XML技术和关系数据库技术两者结合起来就可以充分利用XML与数据库各自的优势使得数据既能够被有效地管理又具有与平台无关的可交换性。因此基于关系数据库的列L存储成为目前研究的热点。.XML与RDB的映射技术与关系数据库存储方法不同XML数据的存储对模式并没有强制要求因为删L文档本身已经包含了模式信息在XML文档中模式和数据是共同存在的。而关系数据库中数据的存储必须先有关系模式在关系数据库中模式和数据是分开存储的。根据存储时是否使用x札模式(DTD或XMLSchema)基于关系的XML存储可以分为以下两类:结构映射方法和模型映射方法。(一)模型映射对于模型映射需要将XML文档模型(即文档树结构)映射为关系模式关系Ig模式表示XML文档模型的构造对于所有XML文档都有固定的关系模式因此它是XML模式(或DTD)无关的。具体来说模型映射有如下两种方法:、边模型映射。将一个XML文档看成是一个有序有向边标记图称为XML图设计一个(或者若干个)关系存储XML图的边信息和结点值【。用来存储边信息的边表有三种方法:边表方法(Edge方法)、二元表方法(Binary方法)、通用表方法(Universal方法)。用来存储节点值的值表有两种方法:独立值表方法和内联方法。三种边表和两种值表方法合起来一共有六种存储模式。D.Plorescu和D.Kossmann在文献中对边模型映射的六种基本的存储模式进行了量化分析认为:Binary边表方法优于Edge边表方法Edge边表方法又优于Universal边表方法:内联值表方法优于分离值表方法Binary边表带内联值表的存储模式能获得最好的综合性能。为了改进Edge方法查询需要进行大量链接的缺点A.Schmidt等人提出Monet边表方法。、结点模型映射方法。设计若干个关系来存储XML文档树的结点信息、结点值和结构信息(通过区I’BJ编码来译码结构信息或者直接存储双亲/孩子结点对或祖先/后裔结点对)。主要有M.Yohikawa等人提出的XRel方澍和香港科技大学JiangHaifeng等人提出的XParent方法邯。模型映射方法对某些应用来说提供了一定的灵活性因为当使用模型映射方法对XML文档进行存储时不但存储了

职业精品

XX有限公司(薪资福利管理制度).doc

公司采购流程管理制度制定方法.doc

招聘管理与面试技巧.ppt

公司采购流程管理制度.doc

用户评论

0/200
    暂无评论
上传我的资料

精彩专题

相关资料换一换

资料评价:

/ 58
所需积分:1 立即下载

意见
反馈

返回
顶部