1 / 81

《XML 技术及其应用 》

《XML 技术及其应用 》. 第 1 章 XML 基础知识. 主讲教师:桂浩 武汉大学. 教材与参考资料. 教材: 《XML 开发技术教程 》. 桂浩 等 . 武汉大学出版社 参考资料: 《XML 编程技术大全 》 清华大学出版社 《XML 数据库设计 》 机械工业出版社 www.w3c.org (www.w3.org) 、 www.xml.com 、 www.xml.org 、 bbs.xml.org.cn IBM Developerworks 、 MS MSDN 、 Apache XML. XML related technologies.

gilda
Download Presentation

《XML 技术及其应用 》

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 《XML技术及其应用》 第1章 XML 基础知识 主讲教师:桂浩 武汉大学

  2. 教材与参考资料 • 教材: • 《XML开发技术教程》. 桂浩 等. 武汉大学出版社 • 参考资料: • 《XML 编程技术大全》清华大学出版社 • 《XML 数据库设计》机械工业出版社 • www.w3c.org (www.w3.org)、www.xml.com、www.xml.org、 bbs.xml.org.cn • IBM Developerworks、MS MSDN、Apache XML

  3. XML related technologies • XML,DTD,Schema, XSLT, DOM, PDOM, SAX, XPATH, XQuery….. • Web Service, RDF, WSDL, SOAP, Semantic Web, Grid, Ontology….. • XML Message, EAI… • CML, MathML, VoiceML, SVG, SMIL, DrML, ebXML…

  4. We’ll cover …

  5. 标记语言发展简史 • 专用数据格式: Proprietary Data Format (与生成厂商、平台密切相关) • Standard Generalized Markup Language (SGML) • Hypertext Markup Language (HTML) • Dynamic Hypertext Markup Language (DHTML) • eXtensible Hypertext Markup Language (XHTML) • eXtensible Markup Language (XML)

  6. 标记语言(ML)发展过程 1 1. SGML (Standard Generalized Markup Language) • SGML SGML 是一种通用的文档结构描述符号化语言,主要用来定义文献模型的逻辑和物理结构。一个 SGML 语言文件由三部分组成,即语法定义、文件类型定义 DTD 和文件实例。 • SGML 过于庞大复杂(标准手册有 500 多页),难以理解和学习,进而影响其推广与应用。因此,真正大行其道的是 SGML 的一些子集(面向某些领域进行了优化和精简),比如随后的 HTML 和 XML。

  7. 标记语言(ML)发展过程 2 2. 1989 年,欧洲物理量子实验室发明了超文本链接语言,使用它能够轻松地将文字、图形嵌入到网页或其他文件中,这是 HTML 前身。 • HTML(Hypertext Markup Language)是 SGML 的一种实际应用,其 DTD 作为标准被固定下来。因此,HTML 的功能单一,只能用于编写网页,而不能作为定义其它符号化语言的元语言。 • 经历了 HTML 1.0、HTML 2.0 和HTML 3.0、HTML 4.0 等多个版本,同时 DHTML(动态 HTML,实际上是 script + css + html)、VHTML(虚拟HTML,用于在浏览器中浏览三维对象的技术)、SHTML(一种服务器 API)等技术逐步出现。

  8. HTML存在的问题 1 • HTML包含许多内置标记,比如 <head>、<table>等都是在 HTML 4.0 里规范和定义。每一种标记的意义都非常明确,用于表示如何在浏览器中显示相应的数据,比如使用表格、或者采用粗体字体。 • 当然,HTML 也无法解决所有信息的显式,比如化学公式、音乐符号等其他形态的内容。 <html> <head> <title>Title of page</title> </head> <body> This is my first homepage. <br/> <b>Hello World!</b> </body> </html>

  9. HTML存在的问题 2 • 一方面,随着 Web 的飞速发展,网络成为了一个庞大的数据库,人们需要从中搜索、甄别、挑选出自己感兴趣的信息。 • 另一方面,对于 HTML 文档来说,除了便于在浏览器中进行显示之外,要使用计算机程序对其进行复杂的处理非常困难。比如,在搜索信息时并不关心信息的显示特征(是以粗体、还是斜体字体出现的),我们关心的是该数据项与其他数据之间的联系。而 HTML 的标记无法实现元数据的描述,它们仅仅与数据的呈现方式有关。

  10. 标记语言(ML)发展过程 3 • 为了解决前面提出的问题,专家们使用 SGML 标准、并依照 HTML 的发展经验,提出一套使用上规则严谨,但是语法简单的信息描述语言:XML( eXtensible Markup Language)。 • XML的目的是以一种更中立的方式,让用户自行决定要如何理解、呈现从服务端所提供的信息,而着重表示数据以及数据之间的联系。

  11. XML 的特点 1 • XML 的特点主要包括四个方面: • 可扩展性(Extensibility)——XML 允许使用者创建和使用他们自己的标记而不是 HTML 的有限词汇表。 • 灵活性(Flexibility)——XML 提供了一种结构化的数据表示方式,使得用户界面分离于结构化数据。所以,Web 用户所追求的许多先进功能在 XML 环境下更容易实现。

  12. XML 的特点 2 • 自描述性(Self-describing)——不仅人能读懂XML文档,计算机也能处理。XML表示数据的方式真正做到了独立于应用系统,并且数据能够重用。 • 简洁性(Simplicity)——它只有 SGML 约 20% 的复杂性,但却具有 SGML 约 80% 的功能。XML 比完整的 SGML 简单得多,易学、易用并且易实现。

  13. 一个 XML 示例文档 <?xml version="1.0" encoding="UTF-8"?> <book year="1994"> <title>TCP/IP Illustrated</title> <author> <last>Stevens</last> <first>W.</first> </author> <publisher>Addison-Wesley</publisher> <price> 65.95</price> </book> • book.xml • 浏览器中的显示 • XMLSPY 中的显示、及 XMLSPY 中其他 XML 文档

  14. XML 的实际应用 • XML 成为一种与平台无关的、数据表示和数据交换的载体。 • XML 被业界认为是最近数十年来最成功的 IT 技术之一,并广泛地应用于 IT 行业的各个领域。 • 比如:MML(Music ML,面向音乐领域的 XML)、(Math ML,面向数学领域的 XML)、ebXML(面向电子商务领域的 XML)、CML(Chemical ML,面向化学领域的 XML)等等,XML 技术已经深入到自然科学和社会科学的各个领域。

  15. XML在语音技术中的应用(VoiceXML )http://www.vxml.org/ • VoiceXML 是一种创建音频、语音和电话应用程序的语言,相当于带语音功能的 HTML。 • VoiceXML 语音浏览器相当于 Web 浏览器,可以解释 VoiceXML 2.0 脚本并向用户呈现语音信息,同时还能接受用户的语音请求。寻求把基于 Web 的开发和内容传递的优势带入交互式语音响应应用程序中。 • 可以方便的实现音频应用的研发,如:支持自动语音识别(ASR,Automatic Speech Recognition)的IVR(IVR,Interactive Voice Response)应用。

  16. XML 与移动嵌入式开发(WAP/WML、Symbian、无线搜索等技术) • WML(Wireless Markup Language)是 WAP 规范指定的基于 XML 的基本内容格式,使用支持该规范的设备例如移动电话可以浏览 WML 的页面。 • WML 是一种基于扩展标记语言 XML 的语言,是 XML 的子集。它可以显示各种文字、图像等数据,专为无线设备用户提供交互界面而设计,这些无线设备包括移动电话、呼机和个人数字助理 PDA (Personal Digital Assistants) 等。

  17. XML 图形技术(SVG 等) • W3C 推荐标准SVG (Scalable Vector Graphics) 1.1 是一种描述二维图像的语言。 • 它主要是一种向量图形语言,也支持一些光栅图形特性。SVG 提供了一种实用的、灵活的、使用 XML 表示的图像格式,可以以文本的方式,轻松地、实时地创建各种图形。 • 下载并安装 Adobe 公司的 SVGVIEW.EXE(http://www.adobe.com/svg/viewer/install)

  18. SVG 示例 • MySVG.svg 。 • 更多的示例,参见http:// www.svgmaker.com/examples.htm。 • SVG 基于 XML,所以可以用可扩展样式表(XSL)轻松地对其进行转换。结合 Javascript 等客户端脚本语言,SVG 可以支持复杂的 GIS 系统应用,甚至可以使用 SVG 做出类似 Google Map 的 Web 地图,包括各种基本操做(如漫游、缩放模式功能等等)。

  19. XML 与远程教育(IMS、E-learning) • IMS (Instructional Management System) 标准包括存放和使用教学内容、教学进度跟踪、学生程度报告、交换学生记录等等。IMS 有以下两个主要目标:定义远程教育应用及服务的技术标准;支持基于IMS标准的服务和产品全球化。 • 微软公司的 LRN 是 IMS 内容包规范的第一个商业实现。IMS 规定每套教程应该必须有一个名为 "imsmanifest.xml" 的 XML 文件,在这个文件中定义了教程中内容的编排、内容的来源。

  20. XML 与数据库 • 在 XML 应用中,数据库作为数据管理的位置依然没有改变。目前,管理 XML 数据的方式主要有:传统的关系(或者对象)数据库、NXD(Native XML Database,本源 XML 数据库)。 • 从技术角度讲,“以数据库(关系型数据库、对象数据库或者是 NXD)为存贮手段,以 XML 为交换载体”的数据管理模式是一种趋势。 • XML 结构比关系型数据库中所使用的关系更有表现力、更加容易表示和描述复杂的对象。 • 将在第 7 章中详细地介绍“XML 与数据库”。

  21. XML 与安全(基于XML的签名) • 数字签名可以提供端到端的消息完整性保证,还可以提供有关消息发件人的验证信息。通常,签名必须是应用程序数据的一部分。 • W3C 和 IETF 联合制定了 XML Signature 规范。 • .NET Framework 中的 System.Security. Cryptography.Xml 就应用了 XML Signature 规范。 • 在 WS-Security 具有的验证、内容完整性和内容保密性三种功能当中,XML 签名可以提供完整性,并可用于进行发件人验证,是基于 Web Services 的 SOA 中的一项非常重要的支撑技术。

  22. XML 与安全(基于XML的加密) • XML 加密 (XML Encryption) 是 W3C 提出的加密 XML 的标准。 • 加密过程包括加密 XML 文档的元素及其子元素,通过加密,XML 的初始内容将被替换,但其 XML 格式仍然被完好的保留。 • 可以使用非对称和对称算法来加密。

  23. XML 在软件工程中的应用(ADML 等技术) • ADML (Architecture Description Markup Language) 在 ADL (Architecture description languages) 的基础上形成的基于 XML 的软件体系结构描述规范,使其能够更广泛的应用于软件系统体系结构的分析设计。 • 从快速响应供应链的角度来看,部署 SOA、搭建 Web 服务正逐渐成为企业信息化建设的必然选择。XML 作为 Web 服务数据应用与交换的支撑,其重要性更是不言而喻。 • 从软件体系结构建模、到以 XML 为基础的 SOA 实现框架,XML 及其相关技术在软件工程、软件体系结构设计方面日益扮演着举足轻重的角色。

  24. XML 在电子商务中的应用 1 • 电子商务标准的发展趋势是从电子数据交换 (EDI) 和电子资金转帐 (EFT) 的标准化转向基于 XML 语言的标准化。 • 基于 XML 的电子商务标准包括通用架构标准、通用规范标准、行业供应链集成规范标准、B2B特定流程规范标准及各行业规范等。

  25. XML 在电子商务中的应用 2 • ebXML 是联合国电子商务促进中心制定的,是基于 XML 的电子商务架构技术规范之一。其目标是开发一个以开放的 XML 标准为基础的全球电子商务 e-Market 的基础架构,简化贸易程序,为所有企业进入电子商务扫清障碍。 • ebXML 标准技术规范可以建立协调一致的、有极强互操作能力的电子商务的服务和组件,实现在全球电子商务市场中无缝集成。

  26. XML 在电子政务中的应用 • 实现电子政务管理,必须解决文档的管理与传输技术,解决信息交换的方法就是对数据格式进行转换,同时逐步建立可行性的电子公文规范。 • XML 的出现给数据交换与管理带来了一场革命。在电子政务领域,XML 为实现数据交换、上下文检索、多媒体传输等公文处理提供了技术可能,XML 成为电子公文数据处理的引擎。 • 《中国电子政务标准化规范》明确提出了公文要基于 XML 电子公文格式规范,确定文字处理、电子表格和电子演示等 XML 标准。

  27. XML 与无结构化数据的表示 1 • 非关系型数据广泛存在,它们无法以关系表中行列的形式进行描述。比如 Word 文档、电子邮件消息、电子表格等等。 • 数据元素可能是松散耦合的列表、或者相互之间存在复杂的关系。 • XML 将对非关系型数据的表示起到至关重要的作用,因为这类数据的处理和交换将变得更加容易和高效。

  28. XML 与无结构化数据的表示 2 • XML 与无结构化数据之间的关系,就好像关系数据库和结构化数据之间的关系。 • RDMBS 提供了: • 描述数据库、表、行、列和数据类型的机制; • 查询数据库、并返回满足指定模型的数据的机制; • 严格的规则,以控制数据库的行为及其操作。 • 在实际应用中,也希望为无结构化数据提供与 RDBMS 类似的特性,比如支持 XML+DTD。

  29. XML 的定义 • XML 是一种标记语言,用于表示包含结构信息的数据。 • XML is about moving all forms of data and its meaning from many types of source to any kind of destination.

  30. XML 的十个设计目标 (1) 1. XML shall be straightforwardly usable over the Internet. 2. XML shall support a wide variety of applications. 3. XML shall be compatible with SGML. 4. It shall be easy to write programs that process XML documents. 5. The number of optional features in XML is to be kept to the absolute minimum, ideally zero. Tim Bray(one of the three editorsof theXML specification)

  31. XML 的十个设计目标 (2) 6. XML documents should be human-legible and reasonably clear. 7. The XML design should be prepared quickly. 8. The design of XML shall be formal and concise. 9. XML documents shall be easy to create. 10. Terseness in XML markup is of minimal importance. Tim Bray(one of the three editorsof theXML specification)

  32. XML 编程接口 • Core SAX, DOM(W3C Standard model) • Microsoft XML Parser (MSXML) • Java : • JDOM (Java DOM) • JAXP (Java API for XML) • TrAX (Transformation API for XML) • JAXB (Java Architecture for XML Binding ) • XML4J (XML for Java) • ……

  33. XML 规范 • W3C 制定了 XML 规范,并为其制定了一系列的支撑性技术规范,正是有了这些相关技术的辅助,才使得基于 XML 的数据表示、数据交换、数据存储成为可能。 • 要学习和掌握 XML 及其相关技术,第一步是学习 W3C 的 XML 规范。 • XML 1.0 规范非常简单,说明了 XML 文档的组成要素、以及如何编写一个正确的 XML 文档。

  34. XML 文档 • XML 文档实际上是一个文本文件,但并不是任何文本文件都是正确的 XML 文档。 • 可以使用任何文本编辑器来编写 XML 文档。比如 notepad.exe 或者 Word。 • 可以使用 XMLSPY (http://www.altova.com) 等 XML 集成开发环境,能够起到事半功倍的效果! • 在开始编写 XML 文档之前,首先学习一下 XML 的基本语法规则。

  35. XML 声明 (XML Declaration) • XML 文档的第一行内容,通常是 XML 的声明部分,比如: • XML 声明部分本身是可选的,但是如果包含声明部分,必须是整个 XML 文档的第一行内容。 • 完整的 XML 声明包括三个部分:版本声明(version)、编码声明(encoding)和文档独立性声明(standalone)。 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>

  36. 版本声明 • version 属性的取值用于描述当前 XML 的版本编号,通常情况下为 1.0,这是为了将来的新版本能够保持向后的兼容性而设计的,一般都应该包含版本编号的声明; • 在 XML 的声明中,这个属性是必须的,并且必须作为第一个属性出现。

  37. 编码声明 • encoding 属性的取值用于指明当前 XML 文档中所使用的符号的编码方式,请注意:这个编码方式与 XML 文档在文件系统中保存时使用的编码方式没有直接的关系。 • GB2312、UTF-8、UTF-16、ISO-10646-UCS-2、ISO-10646-UCS-4、ISO-8859-1 等等都是合法的 encoding 属性的取值。通常情况下,建议使用 UTF-8 编码方式,因为这样既可以表示西文字符、又可以表示非西文的字符(包括中文)。 • 有关 Unicode 和 UTF-8 的内容,稍后将进行详细地介绍。

  38. 文档独立性声明 • standalone 属性的取值表明当前 XML 文件是独立使用、还是与其他的标记文件配套使用。 • 如果该属性为“yes”,表示在解析当前 XML 文档时,无需其他的外部标记声明文件。 • 相反,如果这个属性为“no”,则表示在解析当前文件时可能需要使用外部的标记声明文件。 • 示例(下一页)。

  39. <?xml version="1.0" standalone="yes"?> <!DOCTYPE book [ <!ENTITY % html.4.entities SYSTEM "1.ent"> %html.4.entities; ]> <book> <title>&nbsp;&nbsp;Data on the Web&nbsp;&nbsp;</title> </book>

  40. 处理指令(Processing Instruction) • XML 文档可以包含一些特定的处理指令,以便将 XML 文档用于特殊的应用程序时,表示需要执行的特定操作。通常,XML 解析器并不理解这些处理指令的含义,也不会执行任何特定的操作。 • 处理指令的语法格式如下: <?target-name data?> • 比如: <?xml-stylesheet href=“style.xsl” type=“text/xsl”?>。 当 XSL 的执行引擎碰到这个处理指令时,将会根据 href 的取值获得指定的 xsl 文件,并对输入的 XML 文档进行相应的转换。

  41. 注释 (Comment) • 作为标记语言的一种,XML 使用了 HTML 相同的注释语法,即:<!-- ........ -->。 • 请注意,在注释的内容中,不应该出现两个连续的横线 (-),因为这是标记注释的特殊符号。 • 通常,注释不应该出现在元素的标记中,注释之中不应该嵌套注释。

  42. 元素 (Element) • 在层次结构的 XML 文档中,元素是最基本的组成单元(Building Block)。 • 元素的语法格式如下所示: • 元素中可以包含文本、子元素、或者两者的组合。 <element_name att1="val1" att2="val2"> ――开始标记 ...content... ――内容 </element_name> ――结束标记

  43. 元素名的命名规则 • 在定义元素时,其命名必须遵循下面的规则: • 元素的名称必须以字母、或者下划线(_)、或者冒号(:)开头; • 元素名称中除首个符号之外的部分可以是字母、数字、横线(-)、下划线(_)、点号(.)、冒号(:)的任意组合; • 元素名称是大小写敏感的,因此开始标记和结束标记中元素名称的大小写形式必须完全相同; • 元素名称长度没有限制。 • 可以使用非英文的元素名。

  44. 有关元素命名的示例 • 下列 XML 标记名称都是正确的: • 下列 XML 标记名称都是错误的: <example-one>、<_example2>、<Example.Three> <bad*charater>、<illegal space>、<12number-start>

  45. 空元素 (Empty Element) • 在 XML 文档中,元素的内容可以为空,比如:<details></details>,这表示该元素中不包含任何内容。 • 空元素还有另外一种书写形式,即 <details/>,这个标记既是开始标记又是结束标记。上面两种写法是完全等价的。 • 空元素是指不包含任何内容的元素,但是在其开始标记中可以包含属性,比如: <details about="Location"></details>

  46. 属性 (Attribute) • 属性不能独立于元素而存在,通常以名-值对的形式出现,属性的取值必须加上引号(单引号或者双引号)。 • 属性的名-值对用于描述当前元素的某个方面的特征,比如: • 元素的命名规则同样适用于属性的命名。 <author firstname="tom" lastname="hanks"></ author>

  47. 元素 V.S. 属性 1 • 元素内容中的子元素和属性,都可以用来刻画该元素某个方面的特征。 • 那么在实际使用时,应该选择哪一种方式呢? <book> <author> <firstname>tom</firstname> <lastname>hanks</lastname> </author> ...... </book>

  48. 元素 V.S. 属性 2 • 对于简单的标量数据(无结构的数据),可以采用属性,否则应该采用子元素。 • 对于可能在数目上发生变化的特性,应该使用子元素,比如某本书籍可能有多个作者: • 这种方法修改了元数据的内容,即属性名称本身,可能会影响到已经编写的用于解析该文档的应用程序。所以,使用子元素的方案在可扩展性方面更好。 <book> <author>tom hanks</author> <author>mike jimmy</author> ...... </book> <book author1="tom hanks" author2="mike jimmy">...</book>

  49. 有关 XML 文档中的元素的补充说明 • 一个元素可以包含任意多个子元素,可以包含多个同名的子元素; • 元素之间不存在对称关系,比如 solar system.xml。 • 子元素的顺序是非常重要的,比如在前面的例子中,第一个 author 元素可能表示该书籍的第一作者,而第二个 author 元素表示第二作者,所以颠倒顺序后含义完全不同。

  50. 有关 XML 文档中的属性的补充说明 • 元素在其开始标记中可以包含任意多个属性,但不能包含同名的属性。 • 对于一个元素所有的属性,它们不分先后顺序,因为它们之间可以通过名称相互区别。 • 充分认识和理解元素和属性之间的区别,这对于学习后面的内容是非常重要的。

More Related