1 / 86

XML 技术及 GML 简介

XML 技术及 GML 简介. HTML —— H yper T ext M arkup L anguage, —— 超文本置标语言 XML —— The e X tensible M arkup L anguage —— 可扩展标记语言 GML —— G eography M arkup L anguage —— 地理标记语言. 标记语言 是一种用来定义文档语法和文法的标记的集合。 XML 是一种 元标记语言 ,用户可以定义自己需要的标记。. 标记语言的概念. 在我们日常学习生活中广泛使用标记语言 ,例如,

marcie
Download Presentation

XML 技术及 GML 简介

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技术及GML简介 • HTML——HyperText Markup Language,——超文本置标语言 • XML—— The eXtensible Markup Language —— 可扩展标记语言 • GML—— Geography Markup Language ——地理标记语言

  2. 标记语言是一种用来定义文档语法和文法的标记的集合。标记语言是一种用来定义文档语法和文法的标记的集合。 • XML是一种元标记语言,用户可以定义自己需要的标记。

  3. 标记语言的概念 • 在我们日常学习生活中广泛使用标记语言,例如, • 在阅读过程中,用不同的颜色标记不同的重点内容,以便浏览; • 早在印刷出版技术出现时,作者就曾经在草稿上做出各种说明,指导印刷工人如何处理版面排放以及其他制作问题。这些说明被称作标记,而协调一致用来定义整套语法和文法的标记集合则被称作语言。例如,校对者就是用手写的标记语言( markup language,M L)与作者交流文字的正确与否。即使是现代的标点符号的使用也是某种形式的标记,因为它告诉读者如何对一段文本进行断句。 • 文字编辑器借助置标来定义格式与外观;…… • 标记语言是一种用来定义文档语法和文法的标记的集合。

  4. 主要内容 • XML简介 • XML语法 • XML文档校验 • XSL/XSLT/XPath • XLink/XPointer • GML简介 • XML编程

  5. 一、XML简介 • HTML、 XML文档范例 • XML产生背景 • HTML缺陷、XML特点与优势 • XML应用 • XML核心 • XML编辑工具

  6. HTML文档范例 • HTML-Sample.html <HTML> <HEAD><TITLE>字体样式</TITLE> </HEAD> <BODY><P>白居易(772-846年)字乐天</P> </BODY> </HTML>

  7. XML文档范例 例2: purchaseOrder.xml gml_sample.XML

  8. XML语言产生背景 • XML、HTML都来自SGML(Standard Generalized Markup Language,ISO 8879),即标准通用置标语言。早在Web产生之前 , SGML就已存在(1986),主要用于印刷和电子出版物领域。 但是SGML十分庞大 ,既不容易学 ,也不容易使用 ,在计算机上实现起来也很困难。鉴于这些原因 ,Web的发明者提出了HTML语言。 • 为了便于在计算机上实现 ,HTML只使用了SGML标记中很小的一部分 ,而且这些标记的形式与其含义都是固定的,例如HTML3.2定义了70种标记 ,HTML4.0中约有100个标记 ,因而HTML语法是不能扩展的,但易学易用 ,开发浏览器也比较容易 ,这在一定程度推进了Web技术的发展 。

  9. 但随着应用的深入,HTML缺陷越来越明显,已经制约了Web技术的发展;但随着应用的深入,HTML缺陷越来越明显,已经制约了Web技术的发展; • Internet海量的信息资源——不同平台、不同格式——数据不能共享、处理功能不能互操作;如数据库、各种MIS、Web应用等; • 人们对Web服务功能提出了更高的要求; • 于是SGML的一个精简版本XML就应运而生了。XML精简了很多SGML中极少用到的部分 ,同时充分考虑到Web的特性,XML是SGML的一个有限子集 ,可以有DTD或Schema ,因而XML语法是可以扩展的。XML是由W3C在 1996年赞助的XML工作组发展起来的 ,W3C于1998年1月10日正式公布XML1.0版本标准。

  10. HTML的局限 • 作为一种简单的表示性语言,它只能显示内容而无法表达数据结构。而这一点恰恰是电子商务、智能搜索引擎所必需的。 • HTML语言不能描述矢量图形、数学公式、化学符号等特殊对象,在数据显示方面的描述能力也不尽如人意。 • HTML只是SGML(Standard Generalized Markup Language,标准通用置标语言)的一个实例化的子集,标记的形式与其含义都是固定的,可扩展性差,用户根本不能自定义有意义的置标供他人使用。这一切都成为Web技术进一步发展的障碍。

  11. XML的特点 • XML是一种元标记语言,用户可以定义自己需要的标记,是简化的SGML。它允许各行业、各组织、个人建立适合自己需要的置标集合,如GML、MathML、CML 等等; • XML描述的是结构和语义,而不是格式化,即内容和表现形式分离; • 比关系数据库的表结构更灵活; • 独立于任何体系结构的数据格式; • 独立于任何语言的数据格式; • 便于网络传输;

  12. XML的优势 • 设计与特定领域有关的标记语言,如GML、MathML、CML、VoiceXML等 • 异质系统间的通信 • 开发灵活的Web应用软件 • 在Web上发布数据 • 更有意义和更准确的搜索 XML的标记含义丰富 ,与其内容紧密相连 ,明确地标志所标记的内容 ,因而使得检索行为更加简单 ,检索结果也更有意义。

  13. XML应用 • CML(Chemical Markup Language ,化学标记语言)可能是XML的第一个应用。CML原来是要发展成SGML应用的 ,但随着XML标准的发展 ,逐步演化成了XML。CML对传统管理化学数据方法最大的改善在于数据的检索。CML还使得复杂的分子数据可在Web上发送; • MathML(Mathimatical Markup Language,数学标记语言 )是一种用于数学方程的XML应用; • GML——地理标记语言; • SVG——Scalable Vector Graphics-可缩放矢量图形; • Web Services的核心技术SOAP、WSDL、UDDI都是以XML文件格式表达的, XML是Web Services的基础。 • …………………

  14. XML

  15. XML核心 • XML文档校验(DTD、Shema) • XSL/XSLT/XPath • XLink/XPointer • XML编程技术(DOM、SAX)

  16. XML编辑工具 • XMLSpy • XMLWriter

  17. 二、XML语法 • XML文档中的有效对象有:元素、处理指令、注释、根元素、子元素和属性。 • XML文档内容的基本单元——元素(element),它的语法格式如下:〈标签〉元素内容〈/标签〉 • 元素是由起始标签、元素内容和结束标签组成。用户把要描述的数据对象放在起始标签和结束标签之间。例如: • <姓名>王平</姓名> • 无论元素内容有多长或者多么复杂,XML元素中还可以再嵌套别的元素,这样使相关信息构成等级结构。

  18. 处理指令处理指令 给XML解析器提供信息,使其能够正确解释文档内容,它的起始标识是“<?”,结束标识是“?>”。 常见的XML声明就是一个处理指令: <?xml version=“1.0”?> <?xml-stylesheet href="SalesToHTML.xsl" type="text/xsl" ?> • 注释 注释是XML文件中用作解释的字符数据,XML处理器不对它们进行任何处理。注释是用“<!--”和“-->”引起来的,可以出现在XML元素间的任何地方,但是不可以嵌套: <!--这是一个注释-->

  19. 根元素和子元素 • 属性 属性给元素提供进一步的说明信息,它必须出现在起始标签中。属性以名称/取值对出现,属性名不能重复,名称与取值之间用等号“=”分隔,并用引号把取值引起来。例如: <salary currency=“US$”> 25000 </salary>

  20. XML文档的基本结构由序言部分和一个根元素组成。序言包括了XML声明和DTD(或者是XML Schema)。 • DTD(Document Type Define,文档定义类型)和XML Schema都是用来描述XML文档结构的,也就是描述元素和属性是如何联系在一起的。例如,在例1的文档前面加上如下的序言部分,就构成了一个完整的XML文档: • <?xml version=“1.0”?> • <!DOCTYPE employees SYSTEM “employees.dtd”> • 一个XML文档中有且仅有一个根元素,其他所有的元素都是它的子元素,

  21. 一个XML文档首先应当是“格式良好的”(Well-Formed),该规定的正式定义位于:http://www.w3.org/TR/REC-xml一个XML文档首先应当是“格式良好的”(Well-Formed),该规定的正式定义位于:http://www.w3.org/TR/REC-xml • “格式良好的”XML文档除了要满足根元素唯一的特性之外,还包括: • 起始标签和结束标签应当匹配:结束标签是必不可少的 • 大小写应一致:XML对字母的大小写是敏感的,<employee>和<Employee>是完全不同的两个标签,所以结束标签在匹配时一定要注意大小写一致; • 元素应当正确嵌套:子元素应当完全包括在父辈元素中,下面的例子就是嵌套错误:<A><B></A></B>正确的嵌套方式如下:<A><B></B></A> • 属性必须包括在引号中; • 元素中的属性是不允许重复的。

  22. XML文档的“有效性” • XML文档的“有效性”是指一个XML文档应当遵守DTD文件或是Schema的规定,“有效的”XML文档肯定是“格式良好的”,有关内容我们会在以后详细说明。

  23. 三、XML文档校验 • XML被作为一种元标记语言,是一种描述标记语言的语言。在节中我们将学习如何说明和描述所创建的新标记语言。这些新的标记语言,要通过文档类型定义(DTD)或模式(Schema)来定义。各个文档要与DTD或XML Schema相比较,这一过程称为合法性检验。如果文档符合DTD或XML Schema中的约束,这个文档就被认为是合法的,否则就是不合法的。 • 文档类型定义(DTD——Document Type Definition) • XML模式(Schema) • XML命名空间

  24. 1、文档类型定义(DTD) • 文件client.xml的DTD定义: • <?xml version="1.0" encoding="GB2312"?> • <!ELEMENT 联系人列表(联系人)*> • <!ELEMENT 联系人(姓名, ID, 公司, EMAIL, 电话, 地址)> • <!ELEMENT 地址(街道, 城市, 省份)> • <!ELEMENT 姓名(#PCDATA)> • <!ELEMENT ID (#PCDATA)> • <!ELEMENT 公司(#PCDATA)> • <!ELEMENT EMAIL (#PCDATA)> • <!ELEMENT 电话(#PCDATA)> • <!ELEMENT 街道(#PCDATA)> • <!ELEMENT 城市(#PCDATA)> • <!ELEMENT 省份(#PCDATA)> fclml.dtd

  25. 内部DTD • 在XML文件的序言部分加入一个DTD描述,加入的位置是紧接在XML处理指示之后。一个包含DTD的XML文件的结构为: • <?xml version = “1.0” encoding=“GB2312” standalone = “yes”?><!DOCTYPE 根元素名[元素描述]>文件体....... • 如文件:内部DTD--XML.xml

  26. 外部DTD • 将文档类型定义文件保存为一个外部DTD文件,然后在XML文件中引用这个外部DTD文件,文档类型声明格式如下: • <?xml version = "1.0" encoding="GB2312" standalone = "no"?> • <!DOCTYPE 根元素名 SYSTEM "外部DTD文件的URL"> • 如文件:外部DTD--XML.xml

  27. 元素声明 • ANY:任意类型 • #PCDATA:简单元素类型 • #CDATA:纯文本类型

  28. 控制元素出现的次数 • ?:出现0或1次,即为可选元素; • *:出现0或多次; • +:出现1或多次。

  29. 2、XML Schema • DTD存在的缺陷: • 1)DTD是基于正则表达式的,描述能力有限; • 2)DTD没有数据类型的支持,在大多数应用环境下能力不足; • 3)DTD的约束定义能力不足,无法对XML实例文档作出更细致的语义限制; • 4)DTD的结构不够结构化,重用的代价相对较高; • 5)DTD并非使用XML作为描述手段,而DTD的构建和访问并没有标准的编程接口,无法使用标准的编程方式进行DTD维护。 • Schema已逐步取代DTD!

  30. XML Schema规范 • XML Schema规范分为三部分: • 第一部分(XML Schema Part 0: Primer)是对Schema的总体介绍,目的是帮助读者快速理解如何利用Schema语法创建Schema文档; • 第二部分(XML Schema Part 1: Structure) • 第三部分(XML Schema Part 2: Datatypes)是对XML Schema语法规范的完整描述,其中前者为描述XML1.0文档的结构和内容约束提供了文档,而后者则为Schema及其他XML规范定义了数据类型.

  31. XML Schema的优点 • 对数据类型的支持 • 使用XML语法 • 对内容模型的有力支持 • 可扩展性 • 自我存档

  32. XML 命名空间的概念 • 名称的命名集; • 使用URI、命名空间前缀来保证XML命名的唯一性; • 如: • xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> • xsd:street完整名称为http://www.w3.org/2001/XMLSchema:street • xsd:city完整名称为http://www.w3.org/2001/XMLSchema: city

  33. 模式范例 • purchaseOrder.xml ——订单XML文件 • purchaseOrder.xsd ——订单模式 • Gml-sample.xml • Cgml.xml • Cgeoml.xsd

  34. 简单元素定义 <xsd:element name="productName" type="xsd:string"/> <xsd:element name="USPrice" type="xsd:decimal"/> <xsd:element name="shipDate" type="xsd:date" minOccurs="0"/> 一般格式: <命名前缀:element name=“元素名称”type=“数据类型"/>

  35. 基本数据类型 short unsignedShort decimal float double boolean time dateTime duration date gMonth gYear gYearMonth gDay gMonthDay Name QName NCName anyURI language ID IDREF IDREFS ENTITY ENTITIES NOTATION NMTOKEN NMTOKENS • tring • normalizedString • token • byte • unsignedByte • base64Binary • hexBinary • integer • positiveInteger • negativeInteger • nonNegativeInteger • nonPositiveInteger • int • unsignedInt • long • unsignedLong

  36. 属性声明 <xsd:complexTypename="PurchaseOrderType"> • <xsd:sequence> • <xsd:element name="shipTo" type="USAddress"/> • <xsd:element name="billTo" type="USAddress"/> • <xsd:element ref="comment" minOccurs="0"/> • <xsd:element name="items" type="Items"/> • </xsd:sequence> • <xsd:attribute name="orderDate" type="xsd:date"/> </xsd:complexType>

  37. <xsd:element name="product"> • <xsd:complexType> • <xsd:attribute name="productID" use="required" type="xsd:ID"/> • <xsd:attribute name="name" use="required" type="xsd:string"/> • <xsd:attribute name="description" use=“optional" type="xsd:string"/> • <xsd:attribute name="unit" type="xsd:positiveInteger"/> • <xsd:attribute name="price" use="required" type="xsd:decimal"/> • </xsd:complexType> </xsd:element>

  38. 内容模型 • Any:元素可以包含任何文本、空白和子元素; • Empty:元素可以包含属性,但不允许出现文本和子元素; • element-only: • Mixed:元素可以包含文本内容、子元素和属性三者的混合体; • <xsd:element name = “myElement” type=“xsd:anyType” />

  39. 定义新的简单类型 <xsd:simpleType name=“myInteger”> • <xsd:restriction base=“xsd:integer” • <xsd:minInclusive value=“10000”> • <xsd:maxInclusive value=“10000”> • </xsd:restriction> </xsd:simpleType> <xsd:simpleTypename="SKU"> • <xsd:restriction base="xsd:string"> • <xsd:pattern value="\d{3}-[A-Z]{2}"/> • </xsd:restriction> </xsd:simpleType>

  40. 复合类型定义 <xsd:complexTypename="PurchaseOrderType"> • <xsd:sequence> • <xsd:element name="shipTo" type="USAddress"/> • <xsd:element name="billTo" type="USAddress"/> • <xsd:element ref="comment" minOccurs="0"/> • <xsd:element name="items" type="Items"/> • </xsd:sequence> • <xsd:attribute name="orderDate" type="xsd:date"/> </xsd:complexType>

  41. <xsd:complexType name="USAddress"> <xsd:sequence> <xsd:element name="name" type="xsd:string"/> <xsd:element name="street" type="xsd:string"/> <xsd:element name="city" type="xsd:string"/> <xsd:element name="state" type="xsd:string"/> <xsd:element name="zip" type="xsd:decimal"/> </xsd:sequence> <xsd:attributename="country" type="xsd:NMTOKEN" fixed="US"/> </xsd:complexType>

  42. 出现次数约束 • 通过minOccurs、MaxOccurs来控制元素出现的次数,它们的默认值都为1;如: • <xsd:element name="item" minOccurs="0" maxOccurs="unbounded"> • <xsd:element ref="comment" minOccurs="0"/>

  43. 四、 XSL/XSLT/XPath • XSL ——eXtensible Stylesheet Language • XSLT ——eXtensible Stylesheet Language Transformation • XPath —— XML Path

  44. XSL是三种语言的结合体 • XSL实际上包含三种语言,具体是: XSLT是一种转换XML的语言; XPath是一种定位XML部分或模式的语言; XSL格式化对象是一种定义XML显示方式的语言。 • XSLT是一种用来将XML文档转换成其他类型文档或其它XML文档的语言。 • XPath是一种对XML文档的部分进行寻址的语言。 • 通过定义多个不同的*.xsl文件,可将XML文档以不同的形式显示。

  45. Xpath表达式 • <?xml version="1.0" encoding="utf-8"?> • <?xml-stylesheet href="SalesToHTML.xsl" type="text/xsl" ?> • <SalesReport> • <Company>XMML.com</Company> • <Period>2001-2002</Period> • <Sales Region="EU">50,000</Sales> • <Sales Region="NA">150,000</Sales> • <Sales Region="AU">10,000</Sales> • </SalesReport> • Xpath表达式,如:/SalesReport/Company • /SalesReport/Sales@Region • /SalesReport/Sales[position=2]

  46. Xpath的定位轴 ancestor preceding-sibling preceding ancestor-or-self • child • descendant • attribute • self • descendant-or-self • following-sibling • following • namespace • parent

  47. <xsl:for-each select="child::PEOPLE/descendant::PERSON"> • 更简单的写法为: • <xsl:for-each select="PEOPLE/PERSON"> • PERSON[position()=2]

  48. XSLT——XSL转换 • XSLT是XSL标准中最重要的部分,它用于将一个XML文档转换成另一个XML文档或另一种类型的文档,也就是将一个XML文档转换成浏览器所能识别的一种格式。这其中之一就是HTML。通常,XSLT将每个XML元素都转换成一个HTML元素。 • XSLT还可以向输出文件中增加全新的元素,或去掉一些元素。它可以重新安排这些元素并对元素进行分类,测试并确定显示哪些元素等等。 • 描述这种转换过程的一个常用说法是:XSL用XSLT将一个XML来源树转换成另一个XML结果树(或将一个XML源文档转换成另一个XML结果文档)。

  49. 将XML文档转化成目标文档 • 创建、编辑XML文档 • 创建一个XSL样式表文档 • 将样式表连接到XML文档

  50. 将XML文档转化成HTML文档范例 • 1、SpeakerList.xml • SpeakerList.xsl • SpeakerList.html • 2、BookCatalogSample.xml • catalog_ui.xsl

More Related