《WEB前台技术5XML.ppt》由会员分享,可在线阅读,更多相关《WEB前台技术5XML.ppt(84页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1,WEB前台技术 5-XML,2,课程结构,3,第一章:XML基础,学时:0.5学时 教学方法:讲授ppt+课堂演示,目标: 本章旨在向学员介绍XML的相关概念及特点,通过本课的学习,学员应该掌握如下知识: 1)了解XML的概念 2)了解XML的特点,4,XML基础,XML(eXtensible Markup Language) 可扩展的标记语言 W3C提出的一种用来描述数据和交换数据的标准语言 XML开始设计时,主要目的是用来弥补HTML作为Internet上描述数据的标准语言的不足 HTML将数据和显示效果混在一起 XML根本作用就是要统一信息的结构,使文档具有通用性 XML的应用越来越
2、广泛 许多系统的配置文件都使用XML格式 Web服务通信中的SOAP协议使用XML语言 各大公司开始以XML为基础来实施EDI(Electronic Data Interchange)系统,5,XML察看,XML察看 使用IE可以直接浏览XML文档 示例:abook.xml 对于正确的XML文档,如果没有任何额外的信息指示如何显示数据的情况下,浏览器一般以树状视图的形式显示XML数据 如果是不正确的XML文档,浏览器会报错,6,XML文档结构,XML文档结构 XML的语法和HTML类似 XML通过标记说明文本的意义和所代表的信息 XML文档的后缀名通常为.xml,7,XML文档结构,注意 XM
3、L不能描述网页具体的外观,它只是描述数据的结构和内容 XML可以用于不同平台之间交换数据 XML没有固定的标记,允许用户随便发明和创建自己的标记可扩展性 HTML中的标记都是特定的,不能使用HTML规范里没有的标记 标记名称可以使用非英文字符,8,XML文档结构,XML文档是树形结构文档结构树,9,XML文档结构,XML结构化 每一个元素都和其它元素有关联 标记本身的含义与它描述的信息相分离,10,XML与HTML比较,XML与HTML 关于数据 HTML将数据和显示效果混在一起 XML文档只存储了数据、并描述了数据之间的关系 关于格式 HTML的格式要求比较松散,HTML解释器通常采用尽量解
4、释的机制 XML是非常严格的标记语言 关于标记 HTML的标记集合时固定的 XML的标记是可以无限扩展的 总结: HTML用来显示数据,重点是“如何显示数据” XML用来描述数据,重点是“数据是什么”,11,XML与数据库比较,XML与数据库 一个XML文档就像数据库中的一个表 数据库的表结构是设计者自定义的,标签中的关系形成了XML文档的结构 数据库表用来存储数据,XML文档用于承载数据 数据库表中的数据可以被各种应用程序使用 XML文档中的数据也像数据库表中的数据一样被其它应用程序查询、运算、修改 多个XML文档的元素之间还可以像数据库的表字段一样定义主外键关系 XML比数据库更适合于阅读
5、 XML适合数据交换,但不适合于大批量数据的存储和处理,12,第二章:XML的基本语法,学时:1.5学时 教学方法:讲授ppt+上机练习,目标: 本章旨在向学员介绍XML的基本语法,通过本课的学习,学员应该掌握如下知识: 1)了解XML的文档声明 2)了解XML的元素、命名规则、属性、元素内容、处理指令等概念,13,文档声明,文档声明, Tom Wolfe The Tight Stuff $6.00 ,XML文档声明,14,文档声明,文档声明 表示该文档是一个XML文档,以及遵循哪个XML版本的规范 注意 文档声明在XML文件中是可选的第一项 推荐在每个XML文档中都包含文档声明 如果在XML
6、文件中写出了声明就必须包含version属性,表示XML的版本,15,文档声明,在文档声明中还可以包含的属性 encoding属性(可选的) 注明XML文档使用的字符编码方式 Unicode(缺省)UTF-8或UTF-16 BIG5或GB2312 standalone属性(可选的) 说明文档是否是独立的 yes(缺省)该文档没有依赖外面的任何文件而可以独立存在 no该文档依赖于外面的某个文件,16,文档声明,XML声明的例子 加深对encoding属性的理解,17,文档声明,18,文档声明,加深对encoding属性的理解 当XML文档使用非Unicode编码时,必须在XML文档声明中指定其字
7、符集编码 采用Unicode编码时可以在XML文档声明中省略字符集编码,19,元素定义,XML元素-Element XML的基本组成单位是元素 元素由标记来定义 标记包括起始标记和结束标记,属性要写在起始标记内 在起始标记和结束标记之间的内容 在XML中,所有元素必须有结束标记 声明部分不是XML元素,20,元素定义,XML元素的内容 元素内容 元素内还有元素标记 混合内容 元素内有元素标记和文本内容 简单内容 元素内只有简单的 文本 空内容 元素内部没有携带任何信息,21,元素定义,嵌套 在一个元素中可以嵌套若干个子元素 交叉与嵌套 XML标记不能交叉,22,元素关系,元素关系 在XML中,
8、各元素之间是相互关联的 以父子关系联系 包含在另一个元素中的元素称为子元素,包含子元素的元素称为父元素 嵌套子元素必须完整地包含在它的父元素中 XMl的元素可以重复,23,根元素,根元素-Root Element 没有被嵌套在其他元素内的元素 Root Element在一个XML文档中有且仅有一个 Root Element是最高层的元素 XML文档中所有元素都是根元素的子孙元素,24,空元素,空元素-empty element 不包含任何内容的元素,25,命名规则,命名规则 在XML中,可以使用自己需要的元素来扩展标记语言可扩展标记语言的含义 基本规则 元素名称不能以数字或“_”(下划线)开头
9、 XML的元素名称中可以包含字母,数字,下划线等 XML的元素名称中不能以字符串“XML”作为开头 XML的元素名称中不能包含空格 XML的元素名称中尽量不要包含特殊字符 元素名称区分大小写,26,命名规则,XML元素名称判断对错 XML元素名称区分大小写,27,命名规则,元素名称流行的约定 元素名称尽量简短 名称的大小写尽量采用同一标准 完全用小写字母来书写名称,当名称中包含多个单词时,相互之间用下划线隔开 address_book 将每个单词的首字母大写,不使用分隔符 AddressBook 元素名称可以使用非英文字符 但是从通用角度看,还是使用英文字符+数字来命名,28,属性,元素属性-
10、Attribute 用于对元素做进一步描述和说明 XML中的属性可以自己随便定义 一个元素可以有多个属性, 每个属性都有名称和取值 在XML中,属性值一定要用双引号或者单引号引起来,否则将被视为错误,推荐先使用双引号 属性区分大小写,29,属性,属性-Attribute 属性可以被改成用子元素来描述同样的信息,30,属性与子元素,属性与子元素 没有明确的规定在什么时候使用属性和子元素 尽量避免使用属性 推荐使用子元素描述数据 因为属性不容易被扩展和被程序操作,但是程序处理属性的速度比使用子元素快 属性不能包含多个值 属性应用 有时使用属性比较方便 ID属性相当于一个计数器,或相当于唯一的标识符
11、。可以把ID称为元数据(与数据有关的数据),即元数据尽量以属性方式存储,数据本身要以元素的方式存储,31,PCDATA & CDATA,元素内容-Element Content 元素内容以两种方式被处理 CDATA(Character Data)字符数据 不想被解析程序解析的一片原始数据区 PCDATA(Parsed Character Data)解析数据 由XML解析器解析的内容,当作一般的文字资料来解读,32,CDATA区,CDATA区 不想被解析处理的数据区 “” 可以在CDATA区嵌入其它语言的代码 HTML XML JavaScript 或者其它含有特殊字符的文本,33,PCDATA
12、区,PCDATA区 直接写在元素的起始标记和结尾标记之间的内容 由XML解析器解析的内容,当作一般的文字资料来解读 XML解析程序会将空格和换行如实地交给下游程序去处理 特殊字符 对于一些特殊字符,不能直接写在PCDATA区中 如、%、”等(注意,和&是严格禁止的),34,注释,注释 在XML文档中可以加入注释来为XML文档添加附加信息 注释的内容会被程序忽略而不做解释和处理。 注释用来解释文档中的某些部分的作用和功能,便于阅读理解 注意: 不要把注释放在XML的声明之前 注释不能嵌套使用,35,处理指令,处理指令-Processing Instruction 用来为处理XML文档的应用程序提
13、供提示信息 处理指令格式: XML解析器会把处理指令原封不动地传送给应用程序,由应用程序来解释这个指令,按照它所提供的信息进行处理,36,XML确认,XML确认 符合语法的XML文档称为结构良好的XML文档 通过验证的XML文档称为有效的XML文档 XML文档中的错误将导致XML程序停止 只要发现错误就停止 一般是缺少结束标记 或者含有特殊字符,如“&”等,37,第三章:XML的约束模式,学时:2.0学时 教学方法:讲授ppt+上机练习,目标: 本章旨在向学员介绍XML的约束模式,通过本课的学习,学员应该掌握如下知识: 1)了解XML的约束模式 2)了解DTD和XML Schema 3)了解名
14、称空间的概念,38,XML的约束模式,XML文件被处理的流程 计算机程序在处理XML文档之前,必须能够解析出XML文档的内容中各个元素的相关信息 将解析出来的信息再交给下游程序进行下一步处理 Parser用于解析XML文档的解析器程序 Parser可以独立使用,也可以成为编辑软件或浏览器的一部分 Well-formed XML 格式良好的XML XML文档严格遵循一定的语法 遵守XMl基本语法规则和规范的XML文档就称为Well-formed XML 一个XML文档必须是格式良好的,39,XML的约束模式,XML文档仅仅格式良好还是不够的,其中的内容还必须满足某些条件的约束限制 XML文档的约
15、束模式 需要定义一套规则来对XML文档中的内容作出限制 约束模式定义了XML文档中允许出现的元素名,元素中的属性,内容类型,及元素间的嵌套关系和出现顺序 如果为一个XML文档指定了约束模式,那么它必须满足约束模式所规定的结构、数据类型和数据关联等内容,40,约束模式语言,XML的约束模式语言 约束模式通常都在一个单独的文件中进行定义模式文档 XML约束模式的内容也需要遵循一定的语法规则 XML约束模式语言用于定义XML约束模式的语法规则 模式文档采用某种约束模式语言编写 XML DTD XDR SOX XML Schema 应用最广泛和具有代表意义的是XML DTD和XML Schema,41
16、,DTD/Schema,XML DTD(Document Type Definition 文档类型定义) 最早出现的一种XML约束模式语言 目前使用最广泛的一种XML约束模式 以.dtd为扩展名 XML Schema 对XML文档内容进行约束的另外一种模式 目的是为了克服DTD的局限性,为XML提供丰富的语法结构 XML Schema已经成为W3C的正式推荐标准 以.xsd为扩展名,42,Valid XML,Valid XML(有效的XML) 一个遵循XML 的基本语法规则,且符合为它指定的某个XML约束模式的XML文档 一个XML文档不一定需要是有效的,但必须是格式良好的 校验 将一个XML
17、文档和它所引用的XML约束模式进行比较分析,看其中的内容是否符合XML约束模式的过程 校验过程也是通过解析器程序软件Parser来处理 非校验类解析器Well-formed XML 校验类解析器Valid XML,43,DTD,DTD文档类型定义 早期出现的一种XML约束模式语言 按照DTD语法创建的文件称为DTD文件 通过比较XML文档和DTD文件,判断XML文档是否是Valid XML文档 一个DTD文件中包含元素和元素之间关系的定义,元素的属性定义,以及实体和符号的定义 DTD文件是文本格式的文件,后缀名通常为.dtd,44,DTD,DTD的使用 格式: 使用规则 定义元素中包含的组成部
18、分,以及每种组成成分出现的次数、次序,还可以是某些成分进行某种关系组合后出现的次数、次序 (#PCDATA) 用于表示元素中的内容是普通文本字符串,45,DTD,(title,author,price) 表示book元素中要嵌套title、author、price子元素,并且这些子元素要按顺序依次出现,只能出现一次 如果没有“,”隔开,表示各子元素可以任意次序出现,但必须且只能出现一次 如果使用“|”隔开,表示只能出现它们之中的任何一个,46,DTD,(book+) 表示bookstore元素中要嵌套book子元素 +:表示它修饰的成分必须出现一次或多次 ?:只能出现一次或不出现 *:可以不出
19、现,也可以出现多次 不使用任何字符,表示必须且只能出现一次,47,DTD,DTD文件 DTD文件应该使用UTF-8或Unicode编码 如果DTD文件中的文本内容全部是英文字符,它们本身就符合UTF-8编码,不需要转换 如果DTD文件中的文本内容包含中文字符,那么必须将它们转换成UTF-8编码后保存 示例:gbbook_dtd.xml gbook.dtd,48,引入外部DTD文件,在XML文档中,使用文档类型声明语句引入DTD XML文档通过使用DOCTYPE声明语句来指明它所遵循的DTD文件 DOCTYPE声明语句紧跟在XML文档声明语句后面 DOCTYPE声明语句 两种格式,49,引入外部
20、DTD文件,DOCTYPE声明语句,文档类型名称由编写者自己定义,通常是使用XML文档的根元素名称作为文档类型名称,50,引入外部DTD文件,DOCTYPE声明语句,SYSTEM表示XML文档所遵循的是一个本地或者组织内部所编写和使用的DTD文件,PUBLIC表示XML文档遵循的是一个由权威机构制定的,公开提供给特定行业或公众使用的DTD文件,51,引入外部DTD文件,DOCTYPE声明语句,DTD文件的标识名称,需要使用双引号括起来,应该符合一些标准的规定,52,引入外部DTD文件,DOCTYPE声明语句,ISO:ISO标准的DTD +:被改进的非ISO标准的DTD -:未被改进的非ISO标
21、准的DTD,DTD所有者的名称,DTD所描述的文件的说明,DTD语言的种类,53,引入外部DTD文件,DOCTYPE声明语句,表示DTD文件所在的位置,需要使用双引号括起来,可以是相对URL,也可以是绝对URL,指定DTD文件在Internet上的绝对URL,54,引入外部DTD文件,强制有效性验证 要求解析器必须对XML文档进行有效性验证时,XML声明语句中的standalone属性应该设置为“no” 一般情况下,使用DOCTYPE声明语句后,即使在XML声明语句中省略了standalone属性,解析器也会自动对XML文档进行有效性验证 使用专门的XML工具软件XML SPY 示例:book
22、_dtd.xml book.dtd 示例:gbbook_dtd.xml gbook.dtd,55,直接嵌入DTD定义语句,直接嵌入DTD定义语句 示例:innerbook.xml 直接嵌入和外部引入比较 一个DTD定义通常要被多个XML文档引用 如果直接嵌入DTD定义语句,要为每一个XML文件都加入相同的DTD定义语句,不利于DTD定义的统一管理和使用 引入外部DTD文件的话,一个DTD文件可以被多个XML文件共享,而且方便管理,56,根据DTD定义语句判断,57,根据DTD定义语句判断,58, ,练习,指出下面DTD有什么区别?, , ,如果改成”*”,59, ,练习,指出下面DTD有什么区
23、别?, ,60, ,练习,指出下面DTD有什么区别?,61, ,练习,指出下面DTD有什么区别?,62,完整的XML文档,一个完整的XML文档包括如下一些组成部分 XML声明 DOCTYPE声明语句 处理指令PI 元素element 注释comment CDATA区 PCDATA区,63,名称空间,名称冲突 XML标记可以由任何组织和个人自行定义 在不同的约束模式文件中,出现表示不同含义的相同标记名称 如果在一个XML文件中同时引用这两个约束模式文档,就会出现名称冲突问题,64,名称空间,XML解决名称冲突问题 使用名称空间来区分每个约束模式文档,每个约束模式文档被赋以一个唯一的名称空间,每个
24、名称空间都有一个唯一的URI表示 在XML实例文档中为元素增加前缀部分,元素名称前增加的前缀名称代表该元素所属于的模式文档的名称空间,65,名称空间,URI(Uniform Resource Identifier)统一资源标识符 identify any resource 描述Internet资源的地址 数字对象标识符 国际标准书号ISBN URL(Uniform Resource Locator)统一资源定位符 限于描述Internet 资源的地址 URI与URL比较 URI表示的概念更大 实际上作为名称空间使用的URI基 本上都符合HTTP的URL语法,66,名称空间声明,名称空间声明 在
25、XML实例文档中为某个模式文档的名称空间指定一个临时的简写名称 名称空间声明可以位于一个元素的开始标记中,并且在一个元素中可以声明多个名称空间,67,名称空间声明的作用域,名称空间声明的作用域 一个名称空间声明可以作用到元素和属性 在任何元素中声明的名称空间,只对该元素及其中嵌套的所有子孙元素有效 如果在里层元素中声明的名称空间前缀与外层元素中声明的另外一个名称空间的前缀名称相同,那么在里层元素及其子孙元素范围内,该前缀名称对应的是里层元素中声明的名称空间,68,默认名称空间,默认名称空间 在名称空间中省略前缀部分 以这种方式声明的名称空间将作为其作用域内所有元素的默认名称空间,即该作用域内的
26、所有没有指定前缀部分的元素都属于这个名称空间,69,第四章:XSLT使用,学时:3.0学时 教学方法:讲授ppt+上机练习,目标: 本章旨在向学员介绍XSLT的相关概念及使用,通过本课的学习,学员应该掌握如下知识: 1)了解XSLT的概念 2)可以使用XSLT对XML文档进行转换,70,XSL简介,XSL简介 XSL是XML的样式表语言 用来描述如何显示XML文档 XSL由三部分组成 XML文档转换:XML Document Transformation,又叫XSLT XSLT是一种比CSS强大很多的语言,可以将XML文档转换成其他格式的文档 模式匹配语法:a pattern matching
27、 syntax,又叫XPath XPath是一种用于标识XML文档各个部分的语言 格式化对象:a formatting object interpretation,XSL FO,71,XSLT简介,XSLT简介 XSL中最重要的部分就是XSLT XSLT将XML文档转换为XHTML文档或者其他XML文档 通过XSLT,你可以从已输出的文件里添加/移除元素和属性,也可以把元素重新排列和分类,实现更多功能 XSLT和CSS比较 二者都可以格式化XML文档 但是相较于XSLT,CSS有以下缺点 不能重新排序文档中的元素 不能判断和控制哪个元素被显示,哪个不显示 不能统计、计算元素中的数据 CSS适合
28、输出较固定的最终文档,简洁,消耗资源少 将CSS和XSLT结合起来使用:服务器端使用XSLT处理文档,在客户端使用CSS控制显示,72,XSLT实例,一个XSLT实例,73,XSLT实例,说明 这是标准的XML文档的首行代码,XSLT本身也是XML文档 这是标准的XSLT文件首行代码 xsl:stylesheet表示将文档作为一个样式表来处理 xmlns:xsl是名称空间声明 一个元素定义一个模板规则。属性match=“/”说明XML源文档中,这个模板规则作用的起点为根节点 接着的HTML代码和文本直接输出 拷贝源文档中的节点的值输出;select属性指明要拷贝greeting节点的值,74,
29、XSLT作用,XSLT作用 XSLT的主要用途就是数据转换应用 以XML为基础的电子商务广泛普及,XSLT作为数据转换的角色也越来越重要 将电视新闻的数据格式转为报纸新闻需要的数据格式 将股票数据直接转换成图片显示在网页上 对EDI(电子数据交换)数据进行统计,排序等,75,XSLT的元素语法,XSLT的元素语法 xsl:template和xsl:apply-templates xsl:value-of xsl:for-each xsl:if xsl:choose、when、otherwise xsl:sort,76,xsl:template和xsl:apply-templates,xsl:t
30、emplate和xsl:apply-templates 模板(template)是XSLT中最重要的概念之一。XSLT文件就是由一个个的模板组成,任何XSLT文件至少包含一个模板。 模板由两部分组成 匹配模式(match pattern):定义XML源文档中哪一个节点将被模板处理 执行:定义输出的是什么格式,77,xsl:template和xsl:apply-templates,xsl:template的语法 xsl:template 的作用是定义一个新模板,属性中name,priority和mode用来区别匹配同一节点的不同模板,不是常用的属性match属性则控制模板的匹配模式(patter
31、n),用来定位XML源文档中哪一个节点被模板处理。,78,xsl:template和xsl:apply-templates,xsl:template的语法 如,我们处理一个包含章节和段落的文档,用para元素定义段落,用chapter元素定义章节 下面语句中模板匹配所有的para元素 下面语句中模板匹配所有para元素和所有chapter元素 下面语句中模板匹配所有父节点为chapter元素的para元素 下面语句中模板匹配根节点 ,79,xsl:template和xsl:apply-templates,apply-template的语法 xsl:apply-templates用来表示处理哪一
32、个节点,select属性用来定义确切的节点名称;总是被包含在xsl:template元素中 上面代码表示模板匹配整个文档(根节点),具体执行时处理根节点下的所有para元素 表示模板匹配para节点,所有para的子元素都被处理,80,xsl:value-of,xsl:value-of的语法 用来将源文档中元素的文本值写到输出文档中 xsl:value-of说明要输出一个节点的值,select=“name”定义了要被输出的元素是name,81,xsl:for-each,xsl:for-each的语法 可以循环处理被选择的节点 其它内容 ,82,xsl:if,xsl:if的语法 类似普通程序语言的if条件语句,允许设定节点满足某个条件时,被模板处理 其它内容 ,83,xsl:choose、xsl:when、xsl:otherwise,xsl:choose的语法 在xsl:if语法中没有else的属性,如果需要进行多项选择,可以使用xsl:choose/xsl:when/xsl:otherwise系列流程控制语法 ,84,xsl:sort,xsl:sort的语法 在XSLT中可以对XML源文档的元素进行重新排序 ,