XML应用编程自学_第1页
XML应用编程自学_第2页
XML应用编程自学_第3页
XML应用编程自学_第4页
XML应用编程自学_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

桂智明zmgui,XML应用编程(自学),主讲教师:桂智明,zmgui,信南305B1-12周周一5,6,7,8节教材:XML编程与应用教程(第二版)清华大学出版社孙更新等XML教程与实验指导清华大学出版社宋武参考书:XML、XMLSchema、XSLT2.0和XQUERY开发详解电子工业出版社孙鑫,课程介绍及安排,开学初一次集体辅导。预计在13周或14周周一5,6,7,8节检查程序。考试或考查:待定见面答疑3-10周,周一5,6,7,8节,信南305B。第5,9周5,6,7,8节,检查作业,课程安排,通过趣味小组的学习完成课程设计激活学生的学习兴趣营造自学的学习氛围思维的相互碰撞,擦出火花深入理解课程的知识点,提高编程能力。培养组织才能和团结合作精神。避免“搭车”现象。,目的与宗旨,分组与分工三人自由结组,课程学习和活动都以小组为单位进行。各班班干部负责上报分组情况。(先留联系方式)按时通过邮件或教育在线上交。三人分工协作,自学活动方案,XML文档类型定义XML文件的显示(CSS+XLST)JAVA中的XML编程XPATH与XQUERY基础(重点)在JAVA中使用XQUERY-XQJ(重点),主要知识点,第1周:学习XML语法及DTD,SCHEMA,XMLSPY安装及使用第2周:学习XML文件的显示第3周:学习JAVA的DOM和SAX解析XML第4、5周学习XPATH第6,7,8周学习XQUERY第9,10,11,12周课程设计,课程自学进度,四次作业,最后一次为课程设计的大作业第一次:通过两种DOM和SAX方式解析给定的XML文档第二次:XML基础教程及实验指导书166页第1,4题,197页第1,2,3题第三次:使用XQJ实现给定的XML文档的检索第四次大作业:按照XML编程与应用教程课程附录中课程实验的说明分别实现该实验(附加要求:后台的查询需要用XQJ来处理实现,用分组号除5的余数确定做哪一题),作业安排,一、XML语言,XML语言可扩展标记语言(eXtensibleMarkupLanguage)为数据交换和数据共享提供平台无关的数据格式简例信息安全专业的学生物理老师考试通知4月2日早8点在3教402室考试,文档声明,文档内容,为什么使用XML语言,网络应用系统的重要问题跨网络数据传输、数据共享跨平台不同的软件系统、硬件系统网络数据交换和数据共享的重要问题不同的数据格式和语义异构数据不同的开发平台和开发语言异构环境网络应用中需要统一的数据表示候选者HTML语言网页编制(仍不规范)XML语言简单、可扩展、事实上的标准重要性计算机网络和应用系统无处不在,都要使用XML数据,1.1XML语言结构,基本结构XML声明文档首行元素内容可嵌套属性name=“value”CDATA文本数据注释处理指令应用领域声明专用定义标记tag标记=命名空间:局部名namespace:localname命名空间:解决语义异构问题自描述性:以标记说明内容的语义,简例2:Books.xml,EverydayItalianGiadaDeLaurentiis200530.00HarryPotterJK.Rowling200529.99,XQueryKickStartJamesMcGovernPerBothnerKurtCagleJamesLinnVaidyanathanNagarajan200349.99LearningXMLErikT.Ray200339.95,XML文档树,文挡节点,bookstore,book,book,title,title,price,39.95,EverydayItalian,1.2XML数据类型,数据类型的描述工具DTD(DocumentTypeDefinition)XMLSchema正规式类型系统用途描述应用领域的数据组织检查XML数据的合法性(良构性)数据查询请求(查询语句)的优化数据查询和处理算法的优化,DTD的案例,在XML文档中引用DTD文件的方法,用正规式描述元素类型,元素属性名称、类型描述,必需属性,可选属性,必须是文本,XMLSchema的案例,类型的定义,命名空间定义,元素类型的说明,最多出现次数,正规式类型系统,案例:BookStoreType:=bookstore(BookType*)BookType:=book(title,author+,year,price)结构类型名:=正规式特点XML类型的抽象描述,形成理论模型支持合法性算法的分析与设计三种类型描述的比较:DTD:简单、实用、不灵活XMLSchema:功能强大、可扩展正规式类型系统:支持理论分析,1.3XML语言的应用扩展,扩展的用途专用领域内的通用数据格式基本方法规定应用领域的命名空间按照应用领域的专业词汇来设计专用的标记(Tag)按照应用领域的信息组织来设计专用的数据类型(DTD/XMLSchema)从而可以用XML语言描述应用领域的数据目标形成支持网络应用的领域专用语言支持跨网络的专用数据共享和数据交换借助XML合法性检查来检查应用数据的合法性,几个应用领域的扩展XML语言,WSDL:Web服务描述语言SMIL:同步多媒体集成语言SVG:可缩放矢量图像标记语言MathML:数学标记语言BSML:生物信息序列标记语言HRMML:人力资源管理标记语言MusicML:音乐标记语言AML:天文数据标记语言CML:化学标记语言。,XML相关技术,W3C中文教学网站相关技术XMLDOM-XML文档对象模型XPath-简易XML查询语言XSLT-XML数据变换语言XQuery-XML查询语言(编程语言)XLink-XML链接语言(支持超级连接)XPointer-XML指针语言(指向XML片段)XForm-下一代HTML表单语言。,二、XPath语言,XPath:XML数据查询语言查询XML文档中的数据元素、属性XPath表达式指定文档路径,获得节点集类似于文件系统的路径绝对路径例:/book选择根的所有book子孙节点相对路径例:(相对于当前节点)bookstore/book选择bookstore的所有book子节点bookstore/title选择bookstore中所有title子孙节点,XPath表达式,条件查询/bookstore/book1第一个book节点/bookstore/bookprice35.00价格大于35的book节点/title*有属性的title节点常用符号/父子关系/祖孙关系.当前节点.双亲节点属性*匹配所有元素查询步的计算四则运算、关系运算、逻辑运算following、preceding-sibling等13种轴操作last()、position()等100多个函数,查询步轴操作:节点测试谓词*,轴操作:Axis当前节点和所选节点的关系,如:attribute、ancestor节点测试:nodetest指定节点种类,如:tag、*、node()、text()谓词:predicate存在条件,如:title、*选择条件,如:price35、last()5简化条件,如:position()=2简写为2案例ancestor-or-self:bookcount(author)2child:*/child:price可简写为*/price,三、XQuery语言,XQuery语言:标准的XML查询语言SQL语言是标准的关系数据库查询语言XQuery语言是XML数据的“SQL”语言特点:包含XPath语言(数据模型、运算符和函数)支持XML文档的查询和构造可构造XHTML网页、XML文档提供选择结构、有限的循环结构、自定义函数支持函数式程序设计(无赋值语句),查询例:XQuery简例,for$xindoc(books.xml)/bookstore/bookwhere$x/price30orderby$x/titlereturn$x/title结果LearningXMLXQueryKickStart针对XPath查询结果的选择、排序和重组核心:FLWOR表达式,HTML网页的构造例,书店for$xindoc(books.xml)/bookstore/bookorderby$x/titlereturnlet$t:=data($x/title),$c:=data($x/category)return$t.分类:$c说明let提供局部变量定义(改善可读性、避免重复计算)计算结果和字符串的隐式连接,基于自定义函数的程序设计例,declarefunctionlocal:sumPrice($sitem()*)asxs:decimalif(fn:empty($s)thenreturn0elsereturn$s1+local:sumPrice(fn:subsequence($s,2);(:函数的调用:)let$s:=for$bindoc(books.xml)/bookstore/bookreturndata($b/price)returnlocal:sumPrice($s),XQueryAPIforJava(XQJ),为Java程序中使用XQuery语言提供统一的编程接口与XML数据源连接准备和提交XQuery查询将查询结果作为XML数据处理进行XML数据处理和数据集成处理XQuery语言的各种实现应符合XQJ规范基于不同数据源的查询引擎不同平台的XQuery引擎,XQJ使用例,XQDataSourcexqd=newDDXQDataSource();/创建数据源XQConnectionxqc=xqd.getConnection();/建立连接XQPreparedExpressionxqp=xqc.prepareExpression(/准备“declarevariable$idasxs:stringexternal;”+/外部变量声明“doc(orders.xml)/orderid=$id”);/XQuery查询表达式XQSequencexqs;xqp.bindString(newQName(“id”),“174”,null);/绑定变量XQSequencexqs=xqp.executeQuery();/执行首次查询xqs.writeSequence(System.out,null);。xqp.bindString

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论