动态网页开发技术_06_XMLppt课件_第1页
动态网页开发技术_06_XMLppt课件_第2页
动态网页开发技术_06_XMLppt课件_第3页
动态网页开发技术_06_XMLppt课件_第4页
动态网页开发技术_06_XMLppt课件_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

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

文档简介

.,可扩展标记语言,.,什么是XML,XML代表ExtensibleMarkupLanguage(eXtensibleMarkupLanguage的缩写,意为可扩展的标记语言)。XML是一种标记语言,很类似HTMLXML的设计宗旨是传输数据,而非显示数据XML标签没有被预定义。需要自行定义标签。XML被设计为具有自我描述性。XML是W3C的推荐标准,.,XML与HTML的主要差异,XML是在HTML之后推出的一种标记语言,虽然同为W3C的标准,但XML和HTML差别较大,主要的差异是:XML不是HTML的替代;XML和HTML为不同的目的而设计;XML被设计为传输和存储数据,其焦点是数据的内容;HTML被设计用来显示数据,其焦点是数据的外观;HTML旨在显示信息,而XML旨在传输信息。,.,XML用于创建新的Internet语言,很多新的Internet语言是通过XML创建的,其中的例子包括:XHTML-最新的HTML版本WSDL-用于描述可用的webserviceWAP和WML-用于手持设备的标记语言RSS-用于RSSfeed的语言RDF和OWL-用于描述资源和本体SMIL-用于描述针针对web的多媒体SVG用于描述可伸缩矢量图RDF和OWL是下一代Web(语义Web)的基础。,.,XML文档实例,XML使用了简单的具有自我描述性的语法:GeorgeJohnReminderDontforgetthemeeting!第一行是XML声明。它定义XML的版本(1.0)和所使用的编码(UTF-8字符集)。下一行描述文档的根元素,接下来4行描述根的4个子元素,最后一行定义根元素的结尾。,.,XML文档树,XML文档必须包含根元素。该元素是所有其他元素的父元素。XML文档中的元素形成了一棵文档树。这棵树从根部开始,并扩展到树的最底端。所有元素均可拥有子元素:.父、子以及同胞等术语用于描述元素之间的关系。父元素拥有子元素。相同层级上的子元素成为同胞(兄弟或姐妹)。所有元素均可拥有文本内容和属性。,.,XML语法规则,所有XML元素都须有关闭标签,在HTML中,省略某些结束标签是许可的,在XML中,省略结束标签是非法的;XML标签对大小写敏感,不同的大小写被看作是不同的标签;XML必须正确地嵌套,不允许两个标签的作用范围互相交错;XML文档必须有根元素;XML的属性值须加引号;在XML中,空格会被保留,HTML会把多个连续的空格字符裁减为一个;XML中的注释与HTML中的写法一致,.,XML元素,XML元素指的是从(且包括)开始标签直到(且包括)结束标签的部分。元素可包含其他元素、文本或者两者的混合物。元素也可以拥有属性。XML元素必须遵循以下命名规则:名称可以含字母、数字以及其他的字符名称不能以数字或者标点符号开始名称不能以字符“xml”(或者XML、Xml)开始名称不能包含空格可使用任何名称,没有保留字。,.,XML元素是可扩展的,XML元素是可扩展,以携带更多的信息。GeorgeJohnDontforgetthemeeting!假定创建了一个应用程序,可将、以及元素提取出来,并产生以下的输出:MESSAGETo:GeorgeFrom:JohnDontforgetthemeeting!,.,XML元素是可扩展的,假定XML文档的作者,出于某种原因,又向这个文档添加了一些额外的信息:2008-08-08GeorgeJohnReminderDontforgetthemeeting!那么前面的应用程序会中断或崩溃吗?答案是:不会。这个应用程序仍然可以找到XML文档中的、以及元素,并产生同样的输出。XML的优势之一,就是可以在不中断应用程序的情况进行扩展。,.,XML属性,属性提供标记的额外信息,属性通常提供不属于数据组成部分的信息。属性值必须被引号包围,单引号和双引号均可使用。使用属性可能会引起的一些问题:属性无法包含多重的值(标记可以)属性无法描述树结构(标记可以)属性不易扩展(为未来的变化)属性难以阅读和维护,.,形式良好的文档,拥有正确语法的XML被称为“形式良好”的XML(良构的文档)。一个“形式良好”的XML文档会遵守前面介绍过的XML语法规则:XML文档必须有根元素XML文档必须有结束标签XML标签对大小写敏感XML元素必须被正确的嵌套XML属性必须加引号,.,XML错误,W3C的XML规范声明:如果XML文档存在错误,那么程序就不应当继续处理这个文档。理由是,XML软件应当轻巧,快速,具有良好的兼容性。,.,XML定义,假定某一工厂生产了一系列的杯子,这个工厂可以定义其XML文档来传输数据,一个示例的XML文档如下:redsmall200ml这是一个形式良好的XML文档,但其中的值颜色、尺寸和容量可以输入任意文本都是合法的。一个企业生产产品,其产品的名称、样式只有有限的几种可能取值,为了防止在XML中输入一些不合法的值,人们提出了XML定义的问题。早期对XML进行定义是采用DTD,目前W3C对XML文档进行定义的最新规范是XMLSchema。XMLSchema规范参见:/XML/Schema。,.,XMLSchema,XMLSchema的作用是定义XML文档的合法构建模块,又称为XMLSchema定义(XMLSchemaDefinition,XSD),具有以下优点:定义可出现在文档中的元素定义可出现在文档中的属性定义哪个元素是子元素定义子元素的次序定义子元素的数目定义元素是否为空,或者是否可包含文本定义元素和属性的数据类型定义元素和属性的默认值以及固定值XMLSchema很快会在大部分网络应用程序中取代DTD,原因是:XMLSchema可针对未来的需求进行扩展XMLSchema更完善,功能更强大XMLSchema基于XML编写XMLSchema支持数据类型XMLSchema支持命名空间,.,数据类型支持,XMLSchema最重要的能力之一就是对数据类型的支持。通过对数据类型的支持,可以完成:可更容易地描述允许的文档内容可更容易地验证数据的正确性可更容易地与来自数据库的数据一并工作可更容易地定义数据约束可更容易地定义数据模型(数据格式)可更容易地在不同的数据类型间转换数据XMLSchema由XML编写,具有以下优点:不必学习新的语言可使用XML编辑器来编辑Schema文件可使用XML解析器来解析Schema文件可通过XMLDOM来处理Schema可通过XSLT来转换Schema,.,简单元素,简单元素指那些仅包含文本的元素,它不会包含任何其他的元素或属性。“仅包含文本”这个限定却很容易造成误解。文本有很多类型。它可以是XMLSchema定义中包括的类型中的一种(布尔、字符串、数据等等),也可以是用户自行定义的定制类型。最常用的简单元素是:xs:stringxs:decimalxs:integerxs:booleanxs:datexs:time简易元素可拥有指定的默认值或固定值。当没有其他的值被规定时,默认值就会自动分配给元素。在下面的例子中,缺省值是“red”:,.,属性,简单元素无法拥有属性。假如某个元素拥有属性,它就会被当作某种复合类型。但是属性本身总是作为简单类型被声明的。定义属性的语法是:xxx指属性名称,yyy则规定属性的数据类型。在缺省的情况下,属性是可选的。如需规定属性为必选,需使用“use”属性。当XML元素或属性拥有被定义的数据类型时,就会向元素或属性的内容添加限定。,.,对值的限定,下面的例子定义了带有一个限定且名为age的元素。age的值不能低于0或者高于120:,.,对一组值的限定,如需把XML元素的内容限制为一组可接受的值,我们要使用枚举约束(enumerationconstraint)。下面的例子定义了带有一个限定的名为car的元素。可接受的值只有:Audi,Golf,BMW:,.,对一系列值的限定,如需把XML元素的内容限制定义为一系列可使用的数字或字母,我们要使用模式约束(patternconstraint)。下面的例子定义了带有一个限定的名为letter的元素。可接受的值只有小写字母a-z其中的一个:,.,对长度的限定,如需限制元素中值的长度,我们需要使用length、maxLength以及minLength限定。这个例子定义了带有一个限定的名为password的元素。其值最小为5个字符,最大为8个字符:,.,对空白字符的限定,如需规定对空白字符(whitespacecharacters)的处理方式,需要使用whiteSpace限定。下面的例子定义了带有一个限定的名为address的元素。这个whiteSpace限定被设置为preserve,这意味着XML处理器不会移除任何空白字符:whiteSpace限定被设置为“replace”,这意味着XML处理器将移除所有空白字符(换行、回车、空格以及制表符)。,.,数据类型的限定,.,复合元素,复合元素指包含其他元素及/或属性的XML元素。有四种类型的复合元素:空元素包含其他元素的元素仅包含文本的元素包含元素和文本的元素上述元素均可包含属性。,.,复合类型指示器,在XMLSchema中,有七种指示器,通过指示器,可以控制在文档中使用元素的方式。这七种指示器是:Order指示器(定义元素的顺序):All(子元素可以按照任意顺序出现,且每个子元素必须只出现一次)Choice(出现某个子元素或者可出现另外一个子元素非此即彼)Sequence(子元素必须按照特定的顺序出现)Occurrence指示器(定义某个元素出现的频率):maxOccurs(规定某个元素可出现的最大次数)minOccurs(规定某个元素能够出现的最小次数)Group指示器(定义相关的数据批元素):Groupname(定义元素组)attributeGroupname(定义属性组),.,XSD创建,从理论上讲,XSD可以使用手工的方式,使用任何文本编辑工具创建。这种创建的工作量十分惊人。目前,有很多计算机辅助软件工程工具可以帮助用户生成XSD文件。这些工具一般符合XMLSchema规范,以图形界面的方式帮助用户定义XSD文件。,.,XML文档校验,一个XML文档是形式良好的,并不意味着该文档是符合XMLSchema的。为了确保一个形式良好的XML文档是符合XMLSchema的,就需要对XML文档进行校验。由于XMLSchema标准较新,支持XMLSchema校验的工具软件较少,大多数情况下,需要编写程序来校验XML文档。,.,XML名称空间,假定如下的XML文件:JAVA编程张三项目经理JSP编程李四教师,在该XML文件中,出现了两个title,一个用于指定书的名字,另一个指定作者的头衔。在XML文件中,需要区别这两个title。为了区别这两个title,需要用到xml名称空间,xml名称空间以xmlns或xmlns:开始,后面跟上一个缩写,再后面用等号,后跟上一个URL构成。例如:Xmlns:people=,.,XML名称空间,使用XML名称空间修改后前面的XML文件可写为:JAVA编程张三项目经理JSP编程李四教师,.,XMLDOM,XMLDOM(XMLDocumentObjectModel)定义一套访问和操作XML文档的标准方法。DOM把XML文档作为树结构来查看。能够通过DOM树来访问所有元素。可以修改或删除它们的内容,并创建新的元素。元素,它们的文本,以及它们的属性,都被认为是结点。XMLDOM是:用于XML的标准对象模型用于XML的标准编程接口中立于平台和语言W3C的标准XMLDOM是用于获取、更改、添加或删除XML元素的标准。,.,结点,根据DOM,XML文档中的每个成分都是一个结点。DOM是这样规定的:整个文档是一个文档结点每个XML标签是一个元素结点包含在XML元素中的文本是文本结点每一个XML属性是一个属性结点注释属于注释结点,.,XML解析为DOM树,Java代码产生DOM树,.,DOM示例,HarryPotterJK.Rowling200529.99EverydayItalianGiadaDeLaurentiis200530.00LearningXMLErikT.Ray200339.95,XQueryKickStartJamesMcGovernPerBothnerKurtCagleJamesLinnVaidyanathanNagarajan200349.99,.,DOM树结点关系,结点树中的结点彼此之间都有等级关系。父、子和同级结点用于描述这种关系。父结点拥有子结点,位于相同层级上的子结点称为同级结点(同胞)。在结点树中,顶端的结点成为根结点根结点之外的每个结点都有一个父结点结点可以有任何数量的子结点叶子是没有子结点的结点同级结点是拥有相同父结点的结点,.,DOM编程接口,DOM作为W3C的标准,提供了一种一致的接口来操作XML文件。目前,大多数编程语言都支持通过DOM来操纵XML文档。JavaScript是早期Netscape公司发明的一种和网页交互的脚本语言,Netscape公司将这种语言作为技术标准提交给ECMA(欧洲计算机制造商协会)批准成为标准,称为ECMAScript语言,名词JavaScript和ECMAScript可互换使用。W3C的大多数可以和浏览器交互的标准,都提供了ECMAScript支持,在规范中称为:ECMAScrptionBinding。规范可参见/TR/REC-DOM-Level-1/ecma-script-language-binding.html。DOM编程接口不只是可以用于JavaScript,大多数编程语言都实现了该编程接口。,.,DOM编程,DOM编程中,需要有某些浏览器端的行为,才能触发事件,ECMAScript脚本才能够执行某些动作。在浏览器中,每一个HTML标记都可以设置鼠标移动、鼠标点击、鼠标拖放、键盘、值改变、输入焦点改变等事件。当这些事件发生时,用户程序可以被激活,以执行某些操作。这SPD中,标记属性的最下方列出了可用的事件。在Java语言中,专门提供了几个系统标准包用来处理和DOM有关的API。安装了JDK后,就可以直接处理DOM了。Java语言的DOM编程接口参见/TR/DOM-Level-2-Core/java-binding.html。其他编程语言也提供了相应的DOM编程接口,这些编程接口的库函数可能需要单独下载才能使用。,.,XML显示,由于XML标签由XML文档的作者“发明”,浏览器无法确定像这样一个标签究竟描述一个HTML表格还是一个餐桌。在没有任何有关如何显示数据的信息的情况下,大多数的浏览器都会仅仅把XML文档显示为源代码。通过使用CSS,可为XML文档添加显示信息。使用CSS格式化XML不能代表XML文档样式化的未来。XML文档应当使用W3C的XSLT标准进行格式化。,.,使用XSL显示XML,XSLT是首选的XML样式表语言。最先的XSLT标准于1999年发布,2007年,XSLT2.0标准发布,相对于前一个版本,有较大的改进。XSLT(eXtensibleStylesheetLanguageTransformations)远比CSS更加完善。使用XSLT可以将XML转换为所期待的格式,如:文本文件、网页、SVG图形等。在使用XSL来转换XML时,不同的浏览器可能会产生不同结果。为了减少这种问题,可以在服务器上进行XSL转换。,.,XSL,将XML由一种格式,转换到另一种格式,可以使用的方法较多,W3C推荐的方式是使用XSL(EXtensibleStylesheetLanguage,扩展样式表语言)。万维网联盟(W3C)开始发展XSL的原因是:存在着对于基于XML的样式表语言的需求。XSL包括三部分:XSLT一种用于转换XML文档的语言;XPath一种用于在XML文档中导航的语言;XSL-FO一种用于格式化XML文档的语言。,.,XPath,XPath是一门在XML文档中查找信息的语言。XPath可用来在XML文档中对元素和属性进行遍历。XPath是W3CXSLT标准的主要元素,并且XQuery和XPointer同时被构建于XPath表达之上。对XPath的理解是很多高级XML应用的基础。什么是XPathXPath使用路径表达式在XML文档中进行导航;XPath包含一个标准函数库;XPath是XSLT中的主要元素;XPath是一个W3C标准。XPath使用路径表达式来选取XML文档中的节点或者节点集。XPath含有超过100个内建的函数。这些函数用于字符串值、数值,日期和时间比较、节点处理、序列处理、逻辑值等等。XPath是XSLT标准中的主要元素。,.,XPath节点,在XPath中,有七种类型的节点:元素、属性、文本、命名空间、处理指令、注释以及文档(根)节点。XML文档是被作为节点树来对待的。树的根被称为文档节点或者根节点。HarryPotterJK.Rowling200529.99(文档节点)、JK.Rowling(元素节点)、lang=“en”(属性节点)、2005(基本值是无父或无子的节点),.,XPath结点关系,父(Parent)每个元素以及属性都有一个父。在前面的例子中,book元素是title、author、year以及price元素的父。根的父是其本身。子(Children)元素节点可有零个、一个或多个子。同胞(Sibling)拥有相同的父的节点,前面的例子中,title、author、year、price就是同胞关系。祖先(Ancestor)某节点的父、父的父等等。在前面的例子中,title元素的先辈是book元素和bookstore元素。后代(Descendant)某个节点的子,子的子等等。在前面的例子中,bookstore的后代是book、title、author、year以及price元素。,.,XPath语法,XPath使用路径表达式来选取XML文档中的节点或节点集。节点是通过沿着路径(path)或者步(steps)来选取的。下表列出了XPath中最重要的路径表达式,其余表达式都可以在此基础上进行构造。,.,XPath实例,张三男李四女王五男,students选取students元素的所有子结点。/students选取根元素students。/student选取所有student元素,而不考虑他们的位置。sutdents/student选取所有属于students的student元素sutdents/student选取所有students的student元素,不考虑student在students下的位置/class选取所有属性class/students/student1选取students的第一个student元素/student/studentlast()选取stuents的最后一个student元素/student/studentpostion()*,template)-当一个节点匹配在XSLT模板中建立的多个模式(也称为规则)时,处理器就会按照XSLT规范中描述的冲突解决指导原则来确定使用哪一个模式。,.,应用模板,元素用于告诉处理器处理当前节点的所有子节点。在匹配的节点模板中还可以再包含元素,从而通知处理器处理该节点的所有子节点,这样依次调用,就可以完成对文档树中所有节点处理。,.,XSLT,在将XML文档解析后,需要将其

温馨提示

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

评论

0/150

提交评论