




已阅读5页,还剩21页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
XML 入门,杨宇,大纲,XML概述XML 语法XML 确认DTDXML SchemaXML解析器文档对象模型 DOM参考资料,XML概述,XML是Extensible Markup Language的缩写 XML是一种类似于HTML的标记语言 XML的标记不是在XML中预定义的,你必须定义自己的标记 XML使用文档类型定义(DTD)或者模式(Schema)来描述数据 XML使用DTD或者Schema后就是自描述的语言,XML概述(续),XML是用来存放数据的XML不是HTML的替代品,XML和HTML是两种不同用途的语言。 XML是被设计用来描述数据的,重点是:什么是数据,如何存放数据。HTML是被设计用来显示数据的,重点是:显示数据以及如何显示数据更好上面。HTML是与显示信息相关的, XML则是与描述信息相关的。,XML概述(续), Lin Ordm Reminder Dont forget me this weekend!,XML 被设计成什么都不做的。XML只是用来组织、存储和发送信息的。XML标记并不是预先规定好的,你必须创造你自己的标记。 比如在下面例子中的、标记都不是在XML规范中事先定义好的。这些标记都是XML文档的作者“创造”出来的。,XML 语法,文档的第1行:XML声明定义此文档所遵循的XML标准的版本,在这个例子里是1.0版本的标准,使用的是ISO-8859-1 (Latin-1/West European)字符集。文档的第2行是根元素(就象是说“这篇文档是一个便条”)文档的第3-6行描述了根元素的四个子节点(to, from, heading,和 body)文档的最后一行是根元素的结束, Lin Ordm Reminder Dont forget me this weekend!,XML 语法(续),XML文档中必须要有结束标记,象下面的例子一样 在HTML文档中,This is a paragraph This is another paragraph,This is a paragraphThis is another paragraph,XML 语法(续),XML标记都是大小写敏感的 所有的XML元素必须合理包含所有的XML文档必须有一个根元素XML文档中的第一个元素就是根元素XML中的注释 ,This text is bold and italic,This is incorrect,XML 语法(续),XML元素可以拥有属性。属性值必须使用引号,单引号、双引号都可以使用数据既可以存储在子元素中也可以存储在属性中有些时候应该为一个元素设计一个ID引用,通过这个ID可以引用存取特定的XML元素,就象HTML中的name和id属性一样 ID属性就相当于一个计数器,或者是一个唯一的标识符,在XML文档中标识不同的便条信息,他不是便条信息的一部分。 元数据(与数据有关的数据)应该以属性的方式存储,而数据本身应该以元素的形式存储。, female, ,XML 语法(续),XML元素命名 元素的名字可以包含子母,数字和其他字符。 元素的名字不能以数字或者标点符号开头。 元素的名字不能以XML(或者xml,Xml,xMl.)开头。 元素的名字不能包含空格。 自己“发明”的XML元素还必须注意下面一些简单的规则: 尽量避免使用“-”,“.”,因为有可能引起混乱,XML 确认 DTD,XML DTDDTD(文档类型定义 Document Type Definition)定义了XML文档中可用的合法元素。 DTD 是一套关于标记符的语法规则。它是XML1.0版规格得一部分,是XML文件的验证机制,属于XML文件组成的一部分。规定了XML文档中所使用的元素,实体,元素的属性,元素与实体之间的关系。,XML 确认 DTD(续),DTD可以是一个完全独立的文件,也可以在XML文件中直接设定。外部DTD(在XML文件中调用另外已经编辑好的DTD)内部DTD(在XML文件中直接设定DTD), 2003081205 田淋 计03.2班 2003081232 杨雪锋 计03.2班 ,12 4 5 6 7 8 ,2为DTD定义开始标记,学生名单为其根元素,3到7都是元素定义,8是结束标记,XML 确认 DTD(续),1.内部声明如果DTD被包含在XML源文件中,它将通过以下语法格式来在DOCTYPE中定义:, Tove Jani Reminder Dont forget me this weekend,XML 确认 DTD(续),2.外部声明如果DTD在XML源文件的外部,它将通过以下语法格式来在DOCTYPE中定义:,ToveJaniReminderDont forget me this weekend!,文件note.dtd包含定义的DTD,XML 确认 Schema,XML Schema XML Schema(XML模式)是基于XML的DTD的替代品。XML Schema本身是一个XML文档,它符合XML语法结构。可以用通用的XML解析器解析它。XML Schema基于XML,没有专门的语法,可以象其他XML文件一样解析和处理XML Schema支持一系列的数据类型(int、float、Boolean、date等)XML Schema提供可扩充的数据模型。XML Schema支持综合命名空间XML Schema支持属性组。,XML 确认 Schema (续),首先我们还是从最简单的例子着手来学习Schema的语法结构: 比如一个简单的XML文档如下: 如果用DTD的形式来定义该XML文档结构的话,可以如下所示: 那么用Schema形式如何定义呢?见下面的代码:, 天涯明月刀 古龙 ,!ELEMENT 书本 (名称, 作者) !ELEMENT 名称 (#PCDATA)!ELEMENT 作者 (#PCDATA),element name=书本 type=书本类型/complexType name=书本类型element name=名称 type=string/element name=作者 type=string/complexType,XML解析器,有不同的方法来划分解析器种类:验证或非验证解析器 验证解析器(Validating parser)在解析 XML 文档同时进行验证非验证解析器(Non-validating parser) 忽略所有的验证错误支持 Document Object Model (DOM) 的解析器 支持 Simple API for XML (SAX) 的解析器标准参见 /SAX/ 特定语言编写的解析器 (Java, C+, Perl 等),XML解析器 DOM,文档对象模型 DOM (Document Object Model)是 World Wide Web Consortium(W3C) 的正式推荐。它定义了一个接口使得程序可以存取和更新 XML 文档的风格、结构和内容。支持 DOM 的 XML 解析器实现该接口。规范的第一版:DOM Level 1/TR/REC-DOM-Level-1当您用一个 DOM 解析器来解析一个 XML 文档时,您将获得一个包含文档中所有元素的树结构。DOM 提供了不同的功能来检查文档的内容和结构。,XML解析器 DOM(续),在 DOM 树中,基本上一切都是节点。每个元素在最底层上都是 DOM 树中的节点。每个属性都是节点。每段文本都是节点。甚至注释、特殊字符(如版权符号 )、DOCTYPE 声明(如果 HTML 或者 XHTML 中有的话)全都是节点。这棵节点树中,有一个根节点-Document节点,所有其他的节点都是根节点的后代节点。节点树生成之后,就可以通过DOM接口访问、修改、添加、删除、创建树中的节点和内容。,文档对象模型-DOM 对象提供了一个标准的方法来操作存储在XML文档中的信息,DOM应用编程接口(API)用来作为应用程序和XML文档之间的桥梁。 在 DOM 下,程序所面对的XML文档不是一个文本流,而是一棵对象树.,XML解析器 DOM(续),DOM 节点的属性主要有:nodeName 报告节点的名称。 nodeValue 提供节点的 “值” 。 parentNode 返回节点的父节点。记住,每个元素、属性和文本都有一个父节点。 childNodes 是节点的孩子节点列表。对于 HTML,该列表仅对元素有意义,文本节点和属性节点都没有孩子。 firstChild 仅仅是 childNodes 列表中第一个节点的快捷方式。 lastChild 是另一种快捷方式,表示 childNodes 列表中的最后一个节点。 previousSibling 返回当前节点之前 的节点。换句话说,它返回当前节点的父节点的 childNodes 列表中位于该节点前面的那个节点(如果感到迷惑,重新读前面一句)。 nextSibling 类似于 previousSibling 属性,返回父节点的 childNodes 列表中的下一个节点。 attributes 仅用于元素节点,返回元素的属性列表。,XML解析器 DOM(续),节点方法insertBefore(newChild, referenceNode) 将 newChild 节点插入到 referenceNode 之前。记住,应该对 newChild 的目标父节点调用该方法。 replaceChild(newChild, oldChild) 用 newChild 节点替换 oldChild 节点。 removeChild(oldChild) 从运行该方法的节点中删除 oldChild 节点。 appendChild(newChild) 将 newChild 添加到运行该函数的节点之中。newChild 被添加到目标节点孩子列表中的末端。 hasChildNodes() 在调用该方法的节点有孩子时则返回 true,否则返回 false。 hasAttributes() 在调用该方法的节点有属性时则返回 true,否则返回 false。,XML解析器 DOM用途,DOM文档可以被进一步的处理,处理结果可以组成一个有效页面一般的,支持Javascript的所有浏览器都支持DOM 当用户在浏览器中打开一个页面时,浏览器就会自动创建文档对象模型中的一些对象如果没有DOM,XML文档只是一个平淡无奇的纯文本文档 ,是DOM将其重新组织,使之呈现一种层次化的结构,将它的内容抽象化成一种树状结构 DOM的一个重要特性就是应用程序或者脚本程序能利用它来访问和更新结构化文档。DOM是应用系统和结构化文档之间的代理,应用系统使用DOM透视出文档的内容,也通过DOM修改文档内容 与XPath结合进行网页元数据抽取,利用XPath快速定位DOM节点,Xpath是一种能够在XML文档中寻找信息的语言。它通过XML文档中的元素和属性来进行导航,是W3C标准 。 XPath 使用路径标记法来指定和匹配文档的各个部分,该标记法与文件系统和 URL 中使用的类似。例如,XPath:/x/y/z 搜索文档的根节点 x,其下存在节点 y,其下存在节点 z。该语句返回与指定路径结构匹配的所有节点。更为复杂的匹配可能同时在包含文档的结构方面以及在节点及其属性的值中。语句 /x/y/* 返回父节点为 x 的 y 节点下的任何节点。/x/yname=a 匹配所有父节点为 x 的 y 节点,其属性称为 name,属性值为 a。,参考资料,XML的规范 XML 1.0规范/TR/1998/REC-xml-19980210 DOM 1.0规范/TR/1998/REC-DOM-Level-1-19981001/ XML Schema规范/TR/1998/NOTE-SOX-19980930,参考资料(续),XML网站 W3C的XMLhttp:/www.w3.o
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 路面工程勘察设计合同4篇
- 《中华人民共和国食品安全法》试题及答案
- 九月份工作计划怎么写(5篇)
- 警示教育心得体会怎么写(例文10篇)
- 执纪执法面试题目及答案
- 中小企业数字营销策略研究与实施
- 农业绿色发展2025政策导向:节水灌溉与水资源管理技术创新报告
- 农产品无损检测技术在农产品生产过程中的应用报告
- 2025年电气原理试题及答案
- 色彩构成试题及答案
- 山西省家庭经济困难学生认定申请表
- 《社会学概论》全套课件-PPT
- 动力弹塑性分析滞回模型-迈达斯
- 产学研合作管理制度
- 手术室护理相关知识100问课件
- 生物必修一课程纲要
- 完整版陆河客家请神书
- 监理规划编制案例
- 文献检索外文数据库
- 一、计算机网络的基本概念
- CMM2-18锚杆机(新)说明书
评论
0/150
提交评论