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

下载本文档

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

文档简介

可扩展标记语言 什么是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使用了简单的具有自我描述性的语法 GeorgeJohnReminderDon tforgetthemeeting 第一行是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元素是可扩展 以携带更多的信息 GeorgeJohnDon tforgetthemeeting 假定创建了一个应用程序 可将 以及元素提取出来 并产生以下的输出 MESSAGETo GeorgeFrom JohnDon tforgetthemeeting XML元素是可扩展的 假定XML文档的作者 出于某种原因 又向这个文档添加了一些额外的信息 2008 08 08GeorgeJohnReminderDon tforgetthemeeting 那么前面的应用程序会中断或崩溃吗 答案是 不会 这个应用程序仍然可以找到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规范参见 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 在具体使用时 使用people来代替冗长的 在同一个XML文档中 可以引用多个不同的名称空间 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 规范可参见 DOM编程接口不只是可以用于JavaScript 大多数编程语言都实现了该编程接口 DOM编程 DOM编程中 需要有某些浏览器端的行为 才能触发事件 ECMAScript脚本才能够执行某些动作 在浏览器中 每一个HTML标记都可以设置鼠标移动 鼠标点击 鼠标拖放 键盘 值改变 输入焦点改变等事件 当这些事件发生时 用户程序可以被激活 以执行某些操作 这SPD中 标记属性的最下方列出了可用的事件 在Java语言中 专门提供了几个系统标准包用来处理和DOM有关的API 安装了JDK后 就可以直接处理DOM了 Java语言的DOM编程接口参见 其他编程语言也提供了相应的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 student 1 选取students的第一个student元素 student student last 选取stuents的最后一个student元素 student student postion 3 选取studnets最前面两个student元素 student class 选取所有具有属性class的student元素 student class 1 选取所有属性class的值为 1 的student元素 XPath预定义函数 在前面的实例中 出现了last position 等 这些是在XPath中预定义的函数 XPath中预定义了上百个函数 这些函数分为以下类别 存取错误和跟踪数值字符串AnyURI逻辑持续时间 日期 时间QName节点序列Context XSL模板 XSL样式表是由一个或多个被称为 模板 的规则集组成的 每个模板都包含了与每一个指定节点相匹配的应用规则 模板规则包含两个部分 模式 pattern 和模板 template 模板用于在源文档中匹配 定位 节点 模板定义节点的处理规则 通过模板的实例化来组成结果树的一部分 当一个模板实例化的时候 它总是相对于当前节点和当前节点列表来实例化 当前节点总是当前节点列表的成员 在XSLT中 大多数操作都是相对于当前节点的 只有很少的指令改变当前节点列表或者当前节点 例如 当XSLT处理器使用XSL式样表转换XML文档时 处理器将遍历XML文档的树状结构 一次浏览每个节点 并将浏览的节点与式样表中的每个模板规则的模式进行比较 如果处理器找到了与模板规则的模式相匹配的节点 处理器就会输出此规则的模板 模板通常包含了一些元素指令 新的数据 或者从源XML文档中复制的数据 定义模板 元素定义了用于匹配节点的规则 match 其中 匹配整个文档 在apply template使用 其语法规则为 match pattern mode mode priority number template 当一个节点匹配在XSLT模板中建立的多个模式 也称为规则 时 处理器就会按照XSLT规范中描述的冲突解决指导原则来确定使用哪一个模式 应用模板 元素用于告诉处理器处理当前节点的所有子节点 在匹配的节点模板中还可以再包含元素 从而通知处理器处理该节点的

温馨提示

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

评论

0/150

提交评论