第5-6课时xml培训课件_第1页
第5-6课时xml培训课件_第2页
第5-6课时xml培训课件_第3页
第5-6课时xml培训课件_第4页
第5-6课时xml培训课件_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

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

文档简介

1、XML,目的,了解可扩展标示语言(可扩展标示语言),HTML(超文本标记语言)和SGML(标准通用标记语言)之间的关系学会创建一个基本的可扩展标示语言文档,掌握可扩展标示语言语法了解爪哇语言编程接口去解析和维护可扩展标示语言文档的相关技术,JAXP,DOM,SAX,XML和标记语言,什么是XML?XML是可扩展标示语言(ExtensibleMarkupLanguage)的缩写,是一种标记语言。什么是标记语言?标记语言是在文本文件中插入一些标记,把文档分成许多部分,使用插入的标记对这些被分割的文档各个部分加以标识和描述。使用Java进行XML编程,一个标记语言的例子,下面是一段介绍教程信息的普通

2、文本:本课程名称是使用爪哇进行可扩展标示语言编程。本课程介绍学习用Java语言编写的程序来分析、管理和使用XML(扩展标记语言)的文档和数据。本教程适用于软件工程师、软件开发员、应用程序开发员或开发处理、管理和操控XML数据或文档应用程序的技术经理。本课程属于XML编程类别。,一个标记语言的例子,下面是进行了标记的课程介绍:使用Java进行XML编程学习用Java语言编写的程序来分析、管理和使用XML(扩展标记语言)的文档和数据软件工程师、软件开发员、应用程序开发员或开发处理、管理和操控XML数据或文档应用程序的技术经理。XML编程,、,、,、,在这里我们加入了四个标记:,,分别表明了这四段文

3、本的表达含义。,由于加入了相应的标记,我们就可以使用计算机程序去解析和处理这一段文本了,例如,如果我们用这种标记形式的文本描述我们全部的教程,那么我们就可以编程找出某一类别的全部教程的名称。而在未标记的文本上编程就要困难多了。,有什么好处呢?,标记语言的历史第一个标记语言GML由IBM在1960年发明,通用标记语言:GeneralMarkupLanguage(GML)标记语言具有很长的历史,在1960年下半年,为了容易的在不同的计算机平台之间交换文本文件,IBM的一个在文本文件显示方面进行研究的项目组发明了GML。,GML1960年,SGML,HTML,XML,标记语言的历史,标准通用标记语言

4、:StandardGeneralizedMarkupLanguage(SGML)SGML的起始版本是被美国国家标准协会(ANSI)对GML标准化后产生的。在1980年,SGML被核准为一个ISO标准。SGML是一种非常强大的标记语言,SGML能表现各种类型的文档,它已经被美国政府及其合同商、大型制造公司、大型出版商广泛采用为他们的文件标准。SGML提供一系列复杂规则来定义文档的结构。SGML对储存和使用大量的文档是适当的。但是,它的复杂性及其实现所需要的大量资金又意味着大多数商业用户和个人用户无法享受此项技术所带来的益处。,GML1960年,SGML1980年,HTML,XML,GML被ANS

5、I标准化为SGML,SGML在1980年成为ISO标准,超文本标记语言:HyperTextMarkupLanguage(HTML)是HTML使标记语言广为人知。是HTML和WEB一起奠基了互联网的今天。HTML是被CERN(TheEuropeanLaboratoryforParticlePhysics欧洲粒子物理实验室)在1990年开发和发表出来的。HTML是一种起源于SGML的标记语言。HTML仅仅是被SGML的一种文件格式定义(DTD)约束的文档显示格式。,GML1960年,SGML1980年,HTML1990年,XML,HTML成为最为人所知的标记语言,标记语言的历史,标记语言的历史,可

6、扩展标记语言:eXtensibleMarkupLanguage(XML)可扩展标记语言被设计以更容易地在互联网上使用SGML为目的。它是SGML的一个简化版本。XML在1996年以后由全球信息网协会(W3C)里的XML工作组来进行标准化。W3C当前推荐的标准为1.0。HTML也可以被认为是被XML的一种文件格式定义(DTD)约束的文档显示格式。,GML1960年,SGML1980年,HTML1990年,XML1996年,XML是SGML的一个简化了的子集,现在是W3C所推荐的标准,在不同的计算机平台之间交换文本文件有何困难?,我们考虑一下,你试着去打开用20年前的文档编写软件编辑的文档,你极大

7、的可能是面对着束手无策的困境,为什么?因为任何文档编写软件编写的文档的格式是专用的,都要在文档中插入一些特殊标记,如字体、大小等等,但这个公司可能已经消亡了,甚至软件运行需要的那种机器的型号也已经不存在了,你已经无法识别这种文档的标记及其内容了。,縭H侟;?xO榉?傭鋨搖/c:/傓?1跄?潱鮀匵縭H侟;String傭鋨搖/?詛?_C傓?1跄?潱鮀匵java1菔富蒭徎D縭H侟;?xO,在不同的计算机平台之间交换文本文件有何困难?,而上面这一段文字,无论多少年以后,你用文本编辑器打开,你一样能读懂,更重要的是你能够编写程序去处理它。,使用Java进行XML编程学习用Java语言编写的程序来分析、管

8、理和使用XML(扩展标记语言)的文档和数据软件工程师、软件开发员、应用程序开发员或开发处理、管理和操控XML数据或文档应用程序的技术经理。XML编程,在不同的计算机平台之间交换文本文件有何困难?,如果你的公司每天要产生大量的文档,并且要保证未来50年都是可用的,并且能够由计算机自动处理,你选择什么文档存储格式呢?,縭H侟;?xO榉?傭鋨搖/c:/傓?1跄?潱鮀匵縭H侟;String傭鋨搖/?詛?_C傓?1跄?潱鮀匵java1菔富蒭徎D縭H侟;?xO縭H侟;?xO榉?傭鋨搖/c:/傓?1跄?潱鮀匵縭H侟;String傭鋨搖/?詛?_C傓?1跄?潱鮀匵java1菔富蒭徎D縭H侟;?xO,使用Jav

9、a进行XML编程学习用Java语言编写的程序来分析、管理和使用XML(扩展标记语言)的文档和数据软件工程师、软件开发员、应用程序开发员或开发处理、管理和操控XML数据或文档应用程序的技术经理。XML编程,?,HTML和XML,HTML始终是最成功的标记语言。您几乎可以在任何设备(从掌上电脑到大型机)上查看最简单的HTML标记。既然HTML成功了,为什么W3C还要创建XML呢?,HTML和XML,下表是关于本课程的一个表格描述:科目:使用Java进行XML编程作者:丰伟分类:WEB服务,HTML和XML,课程信息的HTML描述:123课程信息4567科目使用Java进行XML编程8作者丰伟9分类

10、WEB服务101112,HTML和XML,课程HTML文档的浏览效果,HTML和XML,123课程信息4567科目使用Java进行XML编程8作者丰伟9分类WEB服务101112,HTML标记的第一个缺点:只为页面内容的视觉效果进行标记,HTML的标记主要是为页面内容的视觉效果进行标记,而不是标记所包含的内容的真正含义。“WEB服务”并不能告诉我们任何东西。这个文档中的标记告诉浏览器如何显示该信息,但标记没有告诉浏览器信息是什么。,123课程信息4567科目使用Java进行XML编程8作者丰伟9分类WEB服务101112,HTML和XML,假如需要从该文档中抽取作者姓名。下面是一个在这个HTM

11、L中查找课程作者的算法:找到第二个标记,课程作者就是这个和后面间包含的内容。该算法对于这个示例起作用,但对于全世界许多完全有效的课程介绍,该算法根本不起作用。许多和后面间包含的内容的段落根本不包含作者。,HTML标记的第一个缺点:只为页面内容的视觉效果进行标记,HTML和XML,HTML提供一组被预先定义的标签,用户不能够自定义所需要的独特的标签。如果标记语言中没有所需的标记,用户只好等待标记语言的下一个版本,希望在新版本中能够包括所需的标记,但是这样一来就得依赖于软件开发商的选择了。,HTML标记的第二个缺点:HTML是不可扩展的。,23log416,如何去转换,?,HTML,HTML和XM

12、L,课程信息的XML描述:使用Java进行XML编程丰伟WEB服务看这XML文档,您可以给文档中的标记赋予某种含意。机器也容易处理这样的信息。您只需通过找到中和标记之间的内容,就可以从该文档抽取作者姓名。,HTML和XML,XML是对文档内容进行描述,而不是标记如何显示文档。XML标签的特点是一目了然地反映出所要标记的文本的内容,像,我们一看就知道标签包含的内容是什么。而不是、等格式化信息。,123课程信息4567科目使用Java进行XML编程8作者丰伟9分类WEB服务101112,使用Java进行XML编程丰伟WEB服务,HTML和XML,可扩展标记语言XML文件的创建是非常容易的。和HTM

13、L不同,XML不用预先定义任何基本标签。当你建立XML文档时,XML允许你创建对你表示数据有意义的独特的标签。,而不是只能使用那些受限制的预先定义好的元素群组,因而达成了可延伸标记语言中的可延伸(extensible)的特性。,123课程信息4567科目使用Java进行XML编程8作者丰伟9分类WEB服务101112,使用Java进行XML编程丰伟WEB服务,如何显示XML,如果用浏览器打开XML文档,它仅仅显示XML原始内容。,如果要通过浏览器显示XML文档,我们可以使用可扩展样式表语言(ExtensibleStylesheetLanguageforTransformation(XSLT)将

14、XML文档转换成HTML显示在浏览器上。,如何转换,?,如何显示XML,HTML文档:科目使用Java进行XML编程作者丰伟分类WEB服务,XML文档:使用Java进行XML编程丰伟WEB服务,科目作者分类,使用Java进行XML编程丰伟WEB服务,XML声明,根元素,XML文档的基本结构,一个简单的良好的XML文档,XML文档的基本结构,Versioninformation,Encodingdeclaration,Standalonedeclaration,声明最多可以包含三个名称-值对。,大多数XML文档以XML声明作为开始,它提供了关于文档的基本信息。建议使用XML声明,但它不是必需的。

15、如果有的话,那么它必须放到文档的最开始。,XML文档的基本结构,Versioninformation,Encodingdeclaration,Standalonedeclaration,encoding是该文档所使用的字符集。如没有指定encoding,XML解析器会假定字符在UTF-8字符集中,这是一个几乎支持世界上所有语言的字符和象形文字的Unicode标准。,version是使用的XML版本;目前该值必须是1.0。,standalone(可以是yes或no)定义了是否可以在不读取任何其它文件的情况下处理该文档。例如,如果XML文档没有引用任何其它文件,则您可以指定standalone=“

16、yes”。如果XML文档引用其它描述该文档可以包含什么的文件,则您可以指定standalone=“no”。因为standalone=“no”是缺省的,所以您很少会在XML声明中看到standalone。,XML文档的基本结构,使用Java进行XML编程,Element,Elementcontents,XML文档的基本结构,标记和元素:标记是左尖括号()之间的文本。有开始标记(例如)和结束标记(例如)元素是开始标记、结束标记以及位于二者之间的所有内容。在上面的样本中,元素包含三个子元素:、和。开始标记和结束标记之间是元素的内容。,XML文档的基本结构,丰伟,Attributename,Attri

17、butevalue,Specifiedattributes,注:一个元素可以有多个属性,XML文档的基本结构,属性:属性是一个元素的开始标记中的名称-值对。在该示例中,性别是元素的属性,性别,XML文档的基本规则,XML规格需要所有的XML文档必须在组织上是树状阶层结构,并且逻辑和物理结构必须符合一系列特殊的规则,这些规则使得编写解析和处理XML文档的应用程序相当容易。,XML文档的基本规则,1含有数据的元素必须有起始标记和结束标记。不能省去任何结束标记。2不含数据并且仅使用一个标记的元素必须以/结束。如果一个元素根本不包含标记,则称为空元素,HTML换行()和图像()元素就是两个例子。在XM

18、L文档的空元素中,您可以把结束斜杠放在开始标记中。和对于XML解析器来说是一回事。,标记是不合乎规则的,因为没有结束段落标记。,是合乎规则的。虽没有数据,但是最后标签不能省略。,是合乎规则的。,XML文档的基本规则,3元素只能嵌套不能重叠。如果您在元素中开始了元素,则必须在元素中结束元素。XML解析器将只接受这种标记;大多数Web浏览器中的HTML解析器对于两者都接受。Thisisblue.Thisisyellow.Thisisblue.Thisisyellow.,XML文档的基本规则,4文档只能包含一个能够包含全部其他元素的元素。XML文档必须包含在一个单一元素中。这个单一元素称为根元素,它

19、包含文档中所有文本和所有其它元素。前面的示例中,XML文档包含在一个单一元素中。,教程科目使用Java进行XML编程/科目作者丰伟/作者分类WEB服务/分类/教程,科目使用Java进行XML编程/科目作者丰伟/作者分类WEB服务/分类,XML文档的基本规则,5属性值必须加引号。在XML中,您必须给属性赋值,而且必须把值括在引号中。丰伟,丰伟,丰伟,丰伟,您可以使用双引号,,也可以使用单引号,但要始终保持一致。,如果属性值包含单引号或双引号,则您可以使用另一种引号来括起该值(如name=“Dougscar”),,或使用代表单引号。,丰伟,XML文档的基本规则,6元素和属性的标签是大小写敏感的。X

20、ML元素是区分大小写的。在HTML中,和是相同的;在XML中,它们是不同的。如果您试图用标记结束元素,将会出错。,ThisisH1.,ThisisH1.,ThisisH1.,验证XML,XML文件不仅是可以使人们能够轻松的阅读和编辑它们。设计它们的目的也是为了不同系统和不同应用程序间交换数据变得容易些。假如我们是一个生产商,我们需要销售商发给我们的定单使用XML文档,我们需要它们符合特定的格式,以便于我们的定单处理系统能够自动处理它们。例如:我们要求定单的XML文档以为根元素,定单下顺序包含,三个元素。,ws301教材10拐角书店,拐角书店ws301教材一百,能够处理,不能够处理,验证XML,

21、我们需要能够验证和确认定单的XML数据遵循特定的预定的结构从而使应用程序可以以可预知的方式来接收数据。有两种方式可以提供数据与之相比较的这一结构:文档类型定义(DocumentTypeDefinition),或简称DTD。DTD定义可以在文档中存在的元素、那些元素可以具有的属性、在元素内部元素的层次结构以及元素在整个文档中出现的顺序等。XMLSchema。模式可以定义您能在DTD中使用的所有文档结构,它还可以定义数据类型和比DTD更复杂的规则。,XML解析器,现在我们都知道,使用XML来存储结构数据的益处是非常明显的,那么我们如何创建一个XML文档呢?一旦将一些数据存入XML文件中,我们又如何

22、将它们取出来呢?,?,XML解析器,首先尝试解决的方法也许是马上写一段程序,利用字符串读写,进行XML文档的创建、修改和查询的目的。如果你真的这么去做了,那么你就是白费力气了。,XML解析器,这个任务应该留给一个特殊的工具XML解析器来作,实际上,大部分计算机语言都有了XML解析器。,XML解析器,什么是解析器:一个XML解析器是一段可以读入一个XML文档并分析其结构的代码。,解析器的主要功能,1,读入一个XML文档并分析其结构,使编程人员不必处理文档的读取、切割和定位等通用的工作。2,提供编程接口,把解析结果提供给处理XML文档的应用程序,例如一个定单处理程序。3,XML文档如果符合基本标记

23、规则的XML文档被称为格式正确文档(well-formeddocument)。XML规范要求所有的解析器当其发现一个文档不是格式正确时要报错。,有效的文档和格式良好的文档,XML文档如果符合基本标记规则的XML文档被称为格式正确文档(well-formeddocument)。XML文档如果使用一个DTD/Schema并符合DTD/Schema中的规则将被称为有效文档(validdocument)。,ws301教材10拐角书店,拐角书店ws301教材一百,格式正确,有效,格式正确,但无效,有效的文档一定是格式良好的,但是格式良好的文档不一定是有效的。,验证和非验证解析器,如果该文档有一个DTD/

24、Schema的话,判断一个文档是否遵守DTD/Schema标准。我们把它称做验证(Validation)。解析器分为验证解析器(Validatingparser)和非验证解析器(Non-validatingparser)验证解析器(Validatingparser)在解析XML文档同时进行验证。非验证解析器(Non-validatingparser)忽略所有的验证错误。换句话说,只要一个XML文档的格式正确,即使该文档有一个DTD/Schema,一个非验证解析器也不关注它是否符合其对应DTD/Schema。,解析器三,解析器一,解析器二,有许多的解析器可用,每种解析器都提供不同的编程接口。,标

25、准的XML编程接口,我们如果使用某种解析器,就必须使用这种解析器提供的编程接口,从而使我们的应用程序依赖特定的解析器。,标准的XML编程接口,现在解析器提供的编程接口已经被标准化,这些接口为开发人员使用XML文档提供了一致的方式。解析器的提供者必须编写符合标准化了的编程接口的解析器。最流行和广泛使用的被标准化的编程接口有二种:文档对象模型(DocumentObjectModel(DOM))用于XML的简单API(SimpleAPIforXML(SAX)),SAX,SAX的全名是SimpleAPIforXML。SAX是由一个名为XML-dev的邮件列表所发展出来的。SAX定义了解析XML文件会发生的事件,比方说:元素开始、元素结束、出现元素内容等。SAX解析的过程是:首先SAX顺序读取XML文档内容,当解析器发现文档开始、元素开始或获得元素内容等情况时,解析器会向您的应用程序发送相应的事件,您的应用程序只需要处理产生的事件就可以了。,DOM,DOM的全名是文档对象模型(DocumentObj

温馨提示

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

最新文档

评论

0/150

提交评论