第十一章 可扩展标记语言 —— XML
主要内容: XML介绍 XML元素 XML文档和语法 XML与Web浏览器(XML数据岛) XML和XSL XML和DTD XML和DOM
11.1 XML简介 XML:eXtensible Markup Language 可扩展标记语言 标记语言的特点: 由一些格式标记或控制标记组成,这些标记决定了信息的显示格式或数据的意义,但这些标记不能单独存在,它们只是用来修饰它所包括的文本信息。
11.1 XML简介(续) 一、XML的历史 1969年,IBM公司设计出GML语言(Generalized Markup Language) 1980年,SGML语言,1986获ISO批准 1991年,HTML语言问世 1998年2月,W3C(World Wide Web Consortium 全球信息网协会)正式制定出统一的标准来规范XML的使用,即XML1.0规范。
11.1 XML简介(续) 二、XML的特点 SGML功能强大,但是过于复杂; HTML功能简单,无法处理大量的结构化信息。 XML是对SGML简化后创建得到的一种语言,专门使用于Internet之上,它具有如下优点: 实现不同数据源之间的交换,提供了一种不同数据源进行数据交换的公共标准; 一种数据多种显示,将数据存储部分和显示部分分开,数据的显示通常是由CSS或XSL完成的;
11.1 XML简介(续) 实现数据的分布式处理,当保存数据的XML文档被客户机下载后,客户可以通过应用软件对数据进行处理再显示,将由服务器处理的工作转移到了客户端。 简单易学,功能强大 与HTML的关系:不能取代HTML,HTML关注的是显示的效果,XML关注的则是信息的保存方式,从某种意义上讲,XML数据往往还需要被转换成HTML文档才能为浏览器所显示。
11.1 XML简介(续) 三、XML的样式语言 XSL XML HTML 1、使用CSS(CastCading Style Sheet,层叠样式表)格式化XML文档 CSS的功能在于描述标记的显示样式,其产生的初衷是弥补各大厂商“浏览器大战”的恶果。 2、使用XSL格式化XML文档 XSL XML HTML 输入 输出
11.1 XML简介(续) 四、XML的链接语言 超链接不是XML的一部分,而是发展成为一种独立的链接语言,XML的链接语言目前主要由三部分组成: (Xpath、 Xlink、 Xpointer) 1、Xpath(XML路径语言): 它是一种关于如何在XML文档中进行定位,从而能很快找出XML中具有某种特征标记的语言。例如,在XML文档中找到第五次出现的<author>标记所在的节点。说明:这里的节点是标记和它的内容的总称)
11.1 XML简介(续) 2、Xlink(XML链接语言) 一种描述Internet上任一个页面上的任一部分和Internet上的其它页面的某些部分之间的连系。 3、Xpointer(XML指针语言) 建立在Xpath基础之上,是一种更方便帮助计算机寻址的语言。借助这种语言,可以直接在URL中对XML文档的不同部分寻址,从而为XML的超链接提供基础。
11.1 XML简介(续) 五、XML的DOM和DTD 1、文档对象模型DOM(Document Object Model) DOM提供了一种从别的应用程序中调用管理XML文档中数据的方法。 它的处理方法是将一个XML文档看作是一个对象,通过固定的方法和属性对XML文档中不同的标记或节点进行读写。例如通过脚本语言对XML中的数据进行读写。
11.1 XML简介(续) 2、文档类型定义DTD (Document Type Definition)
一个简单的例子 <?xml version="1.0" encoding="GB2312"?> <通知> <发给> 学生 </发给> <来自> 教师 </来自> <日期> <年>2004</年> <月>06</月> </日期> <主题> XML简介 </主题> <正文>Welcome to XML!</正文> </通知>
XML文档的说明 文档的第一行: 一个应该经常包含的XML申明,它定义了XML文档的版本 号在这个例子中表示文档将使用XML1.0的规范. <?xml version="1.0"?> 文档的第二行: 注释 第三行:定义了文档里面的第一个元素(element)也叫第一个元素为根元素: <通知> 再下面定义了根元素的五个子元素 : <发给>、 <来自> 、<日期>、<主题>、 <正文>
XML文档的说明(续) 元素<日期>又包含两个子元素: 最后一行定义了根元素的结束标志 : <年>、<月> 最后一行定义了根元素的结束标志 : </通知> 所有的XML元素都必须要有一个结束标志 。 XML文档可以直接浏览,如前面的例子
主要内容: XML介绍 XML元素 XML文档和语法 XML与Web浏览器(XML数据岛) XML和XSL XML和DTD XML和DOM
11.2 XML元素 一、什么是XML元素 二、XML元素的命名规则 三、XML元素的属性
11.2.1 什么是XML元素 1、XML元素是由一对标签界定的一个数据单位。例如: <学生> 张三 </学生> 3、XML中的元素允许进行嵌套,即元素间存在父子关系。P420 例22.3 4、标签区分大小写。
11.2.2 XML元素的命名规则 1、名称可以包含字母、数字和其它字符; 2、名称不能以数字或标点符号开始; 3、名称不能用xml、XML或Xml开始; 4、名称不能有空格; 5、名称允许使用非英文字符(如汉字字符),但要求系统支持; 6、冒号“:”是保留字符,不允许使用。
11.2.3 XML元素的属性 属性是XML标签的一个修饰词,用来提供元素的附加信息。 属性用属性名、赋值号和属性值表示。 <book ISBN=“7-302-05705-2”> 1、属性只能指定一次值,具有多个属性的元素,其属性值的指定没有一定的顺序。 2、属性值应该使用引号 引号可以是单引号或是双引号,一般使用双引号。
11.2.3 XML元素的属性(续) 3、属性不是元素数据,但属性也可以存放数据 属性是元素的一部分,是用来说明数据的。 对于一个内容,选择用属性来表述,还是选择用数据来表述? <price discount=“0.33”>700.00</price> <price> <discount>0.33</discount> 700.00 </price>
11.2.3 XML元素的属性(续) 一般说来,属性较为简洁、直接,而且有较好的可读性,使用标记则会降低文档的可读性。 下面两种情况适宜用子元素代替属性: 一个属性不能包含子属性,一个元素则可以有自己的子元素,对于复杂信息,可以使用元素。 若元素的开始标记中包含了太多的属性,导致标记过长而降低了可读性,可以考虑使用子元素。
主要内容: XML介绍 XML元素 XML文档和语法 XML与Web浏览器(XML数据岛) XML和XSL XML和DTD XML和DOM
11.3 XML文档和语法 一、XML文档的基本结构 二、XML基本语法规则 三、XML文档类型
11.3.1 XML文档的基本结构 目前,XML仍然处于飞速上升期,有些技术和标准还在研究和探索之中,但是其核心概念和语法已经基本确立。 标记则说明了数据的组织结构; 数据内容是文档的数据部分.
11.3.1 XML文档的基本结构 一个基本的XML文档就是一个XML元素。 1:<?xml version="1.0" encoding="ISO-8859-1"?> 2:<!--This is a XML Document--> 2:<note> 3: <to>Lucy</to> 4: <from>Lin</from> 5: <heading>Reminder</heading> 6: <body>Don't forget me this weekend!</body> 7:</note>
11.3.1 XML文档的基本结构 说明: (1)声明: 一个XML声明。所有的XML文档都必须以XML声明作为文档的第一条语句。它只出现一次。声明中XML的字母大小写可以任意。 <?xml?> 版本声明 <?xml version=“1.0”>
11.3.1 XML文档的基本结构 字符编码声明 (2)注释 <?xml version=“1.0” encoding=“UTF-8”?> <?xml version=“1.1” encoding=“ gb2312”?> 字符编码声明说明当前XML文档中的字符采用何种字符编码方式,字符编码声明是非强制性声明。 (2)注释 第二行是注释,以左尖括号紧接一个惊叹号加两个减号开始,以两个减号加右尖括号结束。
11.3.1 XML文档的基本结构 (3)根元素(root element) (4)子元素(child element) 第三行中的<note>是根元素 (4)子元素(child element) 4~7行描述了4个子元素:to、from、heading 、 body。
11.3.2 XML基本语法规则 1、XML中的所有元素使用的标签都是成对出现的,有一个开始标签,就有一个结束标签。声明不是元素,它没有开闭标签。 <note>…</note>,<from>…</from> 空元素: <标签名/> 而HTML中,不一定有结束标签。 <br>
11.3.2 XML基本语法规则 2、标签区分大小写,<note>和<Note> 将是两个不同的标签; 3、开始、结束标签名必需相同: <Message>错误的标签对</message> <Message>正确的标签对</Message> 4、所有元素必需正确嵌套: <p><b>……</b></p> HTML则无此要求。
11.3.2 XML基本语法规则 5、XML文档中存在一对根标签(root tag),其它所有标签嵌套在这一对标签之内。 6、元素的属性值用引号括起。 7、空格保留(不能随便加空格),HTML则忽略空格。
11.3.3 XML文档类型 XML1.0规范规定了两种文档类型,一种称为合格文档,一种称为有效文档。 1、合格文档 (well-formed XML document) 严格按照XML语法规范书写的XML文档。 2、有效文档(valid XML document) 按照语法规范和DTD(文档类型定义)规则构造的一种文档,有效文档是一种合格文档。
主要内容: XML介绍 XML元素 XML文档和语法 XML与Web浏览器(XML数据岛) XML和XSL XML和DTD XML和DOM
11.4 XML与Web浏览器 一、浏览器中XML文档的显示 二、XML数据岛 1. 内部数据岛 2. 外部数据岛
11.4.1 XML与Web浏览器 IE5.0以上版本、Netscape6.0以上版本可以支持XML1.0和XML DOM标准。 IE5.0以上版本中可以显示原始XML文档,其中XML文档的标签会用颜色作出标记。 在IE浏览器中正确显示的XML代码? 能看到树状结构 ,才是合格的XML代码。
11.4.2 XML数据岛 XML的数据源对象又称DSO(Data Source Object)和数据岛(Data Island)。 数据岛的实现机制是将一个XML文档或一段XML代码当作一个类似于数据库的对象,使用传统的操作数据库的方法来操作XML文档中的数据,例如数据的添加、删除、更新和查询。 另一方面,数据岛提供了一种将XML格式和HTML的一些对象如表格、文本框等进行绑定的技术,这种技术可以用来显示XML数据。
11.4.2 XML数据岛(续) 1、内嵌的数据岛 内嵌的数据岛是通过一对<xml >...</xml>标签,将一段XML代码块嵌入到HTML文档中。这是一种在同一个文件范围内将数据和显示样式分离的方法。 示例:内嵌数据岛.html 数据岛通过表格显示数据的技术核心是建立XML数据和表格之间的对应关系,整个XML数据块对应一个表格,二级标签对应一行,三级标签对应一个单元格。
11.4.2 XML数据岛(续) 2、外部调用数据岛 内部数据岛简单好用,但数据的共享性差,同一段XML代码,无法由多个HTML文件对其进行调用;如果每个HTML文件都内建一个数据岛,又会导致XML数据维护性的降低。 这样的问题可以通过外部数据源的技术得到解决。 示例:外部XML文件 “水泊梁山.xml” 调用HTML文件 “外部数据岛.html”
主要内容: XML介绍 XML元素 XML文档和语法 XML与Web浏览器(XML数据岛) XML和XSL XML和DTD XML和DOM
11.5 XML与XSL 一、XSL简介 二、XSL的语句 三、XSL作用 求值语句<xsl:value-of/> XSL中的循环语句for-each 三、XSL作用
11.5.1 XSL简介 XSL(eXtensible Stylesheet Language): 可扩展样式语言。 W3C于2001年10月推荐的一个标准。它可以对XML的数据进行过滤和分析,可以根据数据值编排XML数据的格式。 目前,XSL的应用主要集中在将XML文档代码转换成HTML代码。
XSL 工作原理
11.5.1 XSL简介 1、XSL的组成部分 XSLT(XSL Transformation):转换XML文本内容 Xpath:定义XML文档部件 XSL Formatting Objects: 格式XML文档词汇 XSL实际上包括两部分: 一个用来转换XML文档的方法 一个用来格式化XML文档的方法
11.5.1 XSL简介 2、XSLT:可扩展的样式语言转换语言 它可以将XML文档转换成浏览器可以识别的文档,例如HTML文档或是XHTML文档。 它还可以实现数据格式的转变与交换,例如将XML数据转换成WAP系统支持的格式,从而使数据可以在用户手机中得到显示。
11.5.1 XSL简介 3、使用XSLT显示XML文档 第一步:创建XSL样式 XSL文件模板 示例:水泊梁山.xsl <?xml version="1.0" encoding="gb2312"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"> <xsl:template match="/"> …... </xsl:template> </xsl:stylesheet>
11.5.1 XSL简介 文件模板说明: XSL文件也是一类特殊的XML文件,所以第一行一定是XML的版本号声明 <xsl:stylesheet>…</xsl:stylesheet>定义了这个文档 是一个样式表 <xsl:template match=“/”>…</xsl:template> 为XML文档定义显示模板,即显示的样式,“/”表示文档的根,表示该模板匹配整个XML文档。
11.5.1 XSL简介 第二步:在XML文档中引用XSL样式 <?xml-stylesheet type="text/xsl" href="水泊梁山.xsl"?> 第三步:在浏览器上显示XML文档
11.5.2 XSL的语句 1、求值语句< xsl: value-of / > 求值语句的作用是输出(显示)特定标签的内容,这里的“特定”是由select属性所使用的匹配模式决定的。如果满足匹配模式的记录有多个,则输出这些记录中的第一条内容。 示例:<xsl:value-of select="坐次"/>
11.5.2 XSL的语句 2、XSL中的循环语句for-each for-each循环依次将程序的当前位置放在一个集合的每一个元素上,即满足select属性后面匹配条件的所有标签构成的集合。 示例: <xsl:for-each select=“头领列表/头领”/>
11.5.2 XSL的语句 4. 其他语句 [参考课本P435~438] 3. 排序 order-by 示例: <xsl:for-each select=“头领列表/头领” order-by=“外号”> 4. 其他语句 [参考课本P435~438]
11.5.3 XSL作用 三、XSL作用 把XML转变成HTML的语言. 能够筛选和排序XML文档中数据的语言 能够根据XML的数据数值格式化XML数据的语言(例如把负数显示成红色). 一个跨浏览器平台的解决方案: 只要在你的SERVER上把XML转换成HTML并且把这个 HTML文档传递给BROWSER. XSL实现了在服务器上能够把数据格式从一种 格式转换成另外一种格式.并且把可读的数据返回给所有的浏览器
主要内容: XML介绍 XML元素 XML文档和语法 XML与Web浏览器(XML数据岛) XML和XSL XML和DTD XML和DOM
11.6 XML和DTD DTD介绍 内部DTD 外部DTD 使用DTD的好处
11.6.1 DTD介绍 DTD文档类型定义,是XML规范中的一部分,不是独立得实体; DTD是选择性的规范,XML可以不用它 构造复杂文档DTD是很困难的,因此提出了更为灵活的模板(Schema)来替代DTD. DTD文件可以嵌入XML文档,也可作为独立的外部文件,通过外部引用嵌入XML文档。
11.6.2 内部DTD 内部DTD是指文档类型的定义在XML 内部。 例如: <?xml version=“1.0”?> <!DOCTYPE note[ <!ELEMENT note (to,from,heading,body)> <!ELEMENT to (#PCDATA)> … <!ELEMENT body (#PCDATA)> ]>
11.6.2 内部DTD <note> <to> LUCY </to> <from> xx </from> <heading> Reminding </heading> <body> Don’t forget t meet me </body> </note>
11.6.2 内部DTD 说明: 第2行:定义根元素<note>; 第3行:定义根元素<note>的四个子元素; 第4~6行:定义四个子元素为 “#PCDATA”型 第7~12行:定义XML数据。 内部DTD效果前例:
11.6.3 外部DTD DTD存在于外部文件中,引用语法如下: <! DOCTYPE 根元素名 SYSTEM “文件名”> 斜体:根元素名 、文件名应该根据实际变化。
11.6.3 外部DTD-引用DTD 例子:外部DTD.xml <?xml version=“1.0”?> <!DOCTYPE note SYSTEM “note.dtd”> <note> <to> LUCY </to> <from> xx </from> <heading> Reminding </heading> <body> Don’t forget t meet me </body> </note>
11.6.3 外部DTD-DTD文件 note.dtd文件如下 : <!ELEMENT note (to,from,heading,body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)>
11.6.4 使用DTD的好处 好处有: 每个XML文档有自己的DTD,不同的团体可以使用统一的DTD来交换数据。
主要内容: XML介绍 XML元素 XML文档和语法 XML与Web浏览器(XML数据岛) XML和XSL XML和DTD XML和DOM
11.7 XML和DOM DOM描述了一系列标准的访问XML和HTML文档的 方法 ,这些方法解析器应该实现。一个支持DOM的解析器应该把XML中的数据变成一系列 对象 ,这样就可以对这些对象二次编程 。 Microsoft 解析 器(Msxml.dll)实现对DOM结构访问和维护XML文档。
11.7 XML和DOM(续) DOM基本构成: Document object Node object nodeList object parseError object
11.7 DOM 表示法 <HTML> <HEAD> <TITLE> HELLO WORLD!</TITLE> </HEAD> <BODY> <P> CONTENT .. </P> <DIV> <SPAN> OTHERS CONTENT</SPAN> </DIV> </BODY> </HTML>
<HTML> <HEAD> <BODY> <TITLE> <P> <DIV> HELLO WORLD <SPAN> CONTENT .. OTHER ..
11.7 例子 设计一个访问xml数据的网页 例:cd_navigate.htm访问 cd_catalog.xml
主要内容: XML介绍 XML元素 XML文档和语法 XML与Web浏览器(XML数据岛) XML和XSL XML和DTD XML和DOM
XML展望 任何一项新技术的产生都是有其需求背景的,XML的诞生是在HTML遇到不可克服的困难之后。近年来HTML在许多复杂的Web应用中遇到了问题,要彻底解决这些问题,必须用功能强大的XML来替代HTML作为Web页面的书写工具。XML有利于信息的表达和结构化组织,从而使数据搜索更有效;XML可以使用URL别名使 Web的维护更方便,也使Web的应用更稳定;XML可以使用数字签名使Web的应用更广阔拓展到安全保密领域。可以认为未来的Web书写工具必定是XML。而XML的广泛使用必然能推动Web不断发展,从而开创Web应用的新时代。
XML展望(续) Web的应用将随着XML的使用而更精彩,以下是可以预见的XML的几种应用。 XML/EDI电子数据交换 EDI(Electronic Data Interchange)是用电子技术代替基于纸张的操作手段,用于公司之间的单据交换。XML的丰富的格式语言可用来描述不同类型的单据,例如信用证、贷款申请表、保险单、索赔单以及各种发票等。结构化的XML文档送至Web的数据可以被加密,并且很容易附加上数字签名。XML的安全保密措施可在EDI的应用中充分显示它的魅力,XML有希望推动EDI的大规模的应用
XML展望(续) 化学标记语言CML和数学标记语言Math ML CML(Chemical Markup Language)和Math ML(Mathematical Markup Language)是XML应用于描述化学和数学公式的标记语言。CML可描述分子与晶体结构、化合物的光谱结构等。而Math ML则是数学家的福音,自Web问世以来,数学家们第一次可以使用Math ML将数学公式精确地显示在浏览器上。
XML展望(续) 开放式软件描述格式OSD 和EDI的命运相仿,软件包的上网发行一直处于试行阶段。OSD(Open Software Descriptipon)是XML的一组用来描述各种软件产品的标记集,可以详细说明软件的规格、使用说明以及可运行平台等。
XML展望(续) 通道定义格式CDF 通道定义格式CDF(Channel Definition Format)是Microsoft在IE 4.0浏览器中使用的XML数据格式, 用于描述活动通道的内容和桌面部件,指明通道的信息及其更新情况。CDF 使不同平台的互操作成为可能,使Web发布者可以控制推(push)技术。专用的推技术将不再影响不同推技术的互操作性,这样一来,从互不兼容的平台上可以获得相同的Web内容。
XML展望(续) 开放式财务交换OFX OFX(Open Financial Exchange)也是XML的一种标记集,用于描述会计事务所与客户之间的业务往来。使用OFX,客户与会计事务所之间可以直接交换财务数据,包括电子银行和支付协议等说明文件。
实验五 基于XML的多媒体设计 实验要求: 设计数个Xml网页,要求综合运用本次课内所介绍的知识。
实验六 综合实验 实验要求: 设计网页,要求综合运用本课程所介绍的知识。 (综合xml、html等知识)
实验安排 实验五: 时间:12月8日 下午6-7节 (礼拜四) 实验六: 时间:12月15日 下午6-7节(礼拜四) 地点:212机房 实验六: 时间:12月15日 下午6-7节(礼拜四) 最后一次上课时间 12月22号,考查测试。
致 谢 感谢大家!!! 祝 学习进步 心情愉快