面向服务计算(一)---XML教程.ppt_第1页
面向服务计算(一)---XML教程.ppt_第2页
面向服务计算(一)---XML教程.ppt_第3页
面向服务计算(一)---XML教程.ppt_第4页
面向服务计算(一)---XML教程.ppt_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

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

文档简介

XML介绍 XML eXtensibleMarkupLanguage 可扩展的标记语言可扩展 相对HTML 超文本标记语言 编辑网页文件时 网页文件中使用的HTML标签都是预先规定好的 不能根据自己意愿添加规定外的标签 而如果编辑一个XML文件 可以根据自己意愿定义标签来完成 比如 胡泽旺男 什么是XML 可扩展性是XML最主要的特点XML是一种元标记语言 它只表示数据本身 没有显示的样式 和HTML比较 HTML不仅表示数据而且还有显示的样式真正的数据和显示分离基于这样的特点 XML主要用来交换数据用交换双方都可以明白的标签来封装数据比如WebServices 就是在不同平台和不同语言之间交换数据写配置文件 XML特点和运用 JavaApps NotNetApps XML Java超级编程比尔盖茨 XML文档构成 XML声明 文档类型声明 文档元素 一个XML文档就是扩展名为 xml的文本文件 XML文档 XML声明 XML声明一般是XML文档的第一行XML声明由以下几个部分组成 version 文档符合XML1 0规范 现在只有1 0encoding 文档字符编码 默认为 UTF 8 standalone 文档定义是否在一个文件内standalone yes standalone no 返回 每个XML文档必须有且只有一个根元素 根元素是一个完全包括文档中其他所有元素的元素 根元素的起始标记要放在所有其他元素的起始标记之前 根元素的结束标记要放在所有其他元素的结束标记之后 XML文档 根元素 XML文档 元素 YIKEJI LTD 元素TITLE 开始标记 结束标记 内容 空元素TITLE 空元素TITLE XML文档 属性 TOM属性值用双引号 或单引号 分隔 如果属性值中有 用 分隔 有 用 分隔 一个元素可以有多个属性 它的基本格式为 特定的属性名称在同一个元素标记中只能出现一次属性值不能包括 实体 作用 避免重复输入 宏 变量 XML中五个预定义实体自定义实体语法 引用已定义的实体 XML专用标记 1 注释 注释内容中不要出现 不要把注释放在标记中间 TOM注释不能嵌套 可以在除标记以外的任何地方放注释 不能位XML文档的第一行 用于把整段文本解释为纯字符数据而不是标记的情况 包含大量 或者 字符 CDATA CharacterData 节中的所有字符都会被当作元素字符数据的常量部分 而不是XML标记 语法 XML专用标记 2 CDATA节 文档类型声明 紧跟XML声明之后 包含所有实体声明语法 文档类型定义 DOCTYPE 遵循如下规则的XML文档称为格式良好的XML文档 语法规范必须有XML声明语句必须有且仅有一个根元素标记大小写敏感属性值用引号标记成对空标记关闭元素正确嵌套 格式良好的XML文档 元素语法名称中可以包含字母 数字或者其它字符名称不能以数字和 下划线 开头不能以XML xml Xml 开头名称中不能含空格名称中不能含冒号 注 冒号留给命名空间使用 格式良好的XML文档 续 DTD DocumentTypeDefinition 文档类型定义DTD用来验证XML文档的结构是否合法DTD定义XML文档中可以出现的元素元素的关系元素可用的属性定义实体DTD文件的扩展名 dtd DTD 有了DTD 每个XML文件可以携带一个自身格式的描述 有了DTD 不同组织的人可以使用一个通用DTD用来交换数据 应用程序可以使用一个标准DTD校验从外部世界接受来的XML数据是否有效可以使用DTD校验自己的XML数据 为什么需要DTD DTD文档的声明及引用内部DTD文档外部DTD文档内外部DTD文档结合 如何生成一个DTD文档 1 4 王维鹿柴空山不见人 但闻人语声 返景入深林 复照青苔上 如何生成一个DTD文档 2 4 注意 例中的定义关键字一定要大写 如DOCTYPE ELEMENT PCDATA 且元素名称与数据类型之间也要有空格 PCDATA ParsiableCharacterData 能够被解析的数据 如何生成一个DTD文档 3 4 王维鹿柴空山不见人 但闻人语声 返景入深林 复照青苔上 外部DTD示例 如何生成一个DTD文档 4 4 王维鹿柴空山不见人 但闻人语声 返景入深林 复照青苔上 内部和外部DTD示例 语法 元素的定义 1 5 关键字 元素名称 EMPTY 该元素不能包含子元素和文本 但可以有属性 空元素 ANY 该元素可以包含任何在DTD中定义的元素内容 PCDATA 可以包含任何字符数据 但是不能在其中包含任何子元素纯元素类型 只包含子元素 并且这些子元素外没有文本混合类型 包含子元素和文本数据的混合体 元素类型 EMPTY示例 空元素皮诺曹皮诺曹爸爸 元素的定义 2 5 ANY示例皮诺曹皮诺曹爸爸将根元素设为ANY类型后 元素出现的次数和顺序不受限制 元素的定义 3 5 PCDATA示例皮诺曹皮诺曹爸爸 元素的定义 4 5 组合类型示例 元素的定义 5 5 修饰符号 语法 属性的定义 CDATAIDIDREF IDREFSEnumerated REQUIRED IMPLIED FIXEDvalueDefaultvalue 属性值可以是任何字符 包括数字和中文 属性类型 CDATA 表明该属性的取值必须是唯一的 属性类型 ID ID属性值必须是合格的XML名字 事先定义好一些值 属性的值必须在所列出的值的范围内 属性类型 Enumerated ENITITY类型的属性的值必须对应一个在DTD文档内声明的实体 通常用来处理外部的二进制数据文件 如图形 音效等ENTITIES类型的属性的值与ENITITIE类似 不同的是可以包含多个由空格分开的实体 属性类型ENTITY ENTITIES A001 元素的所有实例都必须有该属性的值 NOTNULL 语法 DTD示例 XML示例 属性的特点 REQUIRED 元素的实例中可以忽略该属性 NULL 语法 DTD示例 XML示例 属性的特点 IMPLIED 元素实例中该属性的值必须为指定的固定值 语法 DTD示例 XML示例 属性的特点 FIXEDvalue 为属性提供一个默认的值语法 DTD示例 XML示例 属性的特点 Defaultvalue 语法 DTD示例 XML示例 定义实体 内部实体 分析完整的DTD文档 写XML实例 张三男20李四女19王二男21 分析XML实例 写DTD文档 为什么要使用命名空间避免元素名冲突什么是命名空间使用URL作为XML的Namespaces命名空间的语法定义 xmlns prefix URL 元素和属性都可以应用命名空间 命名空间 Namespace XML的元素名是不固定的 当两个不同的文档使用同样的名称描述两个不同类型的元素的时候 就会发生命名冲突 命名冲突 ApplesBananas 使用前缀解决命名冲突问题 AfricanCoffeeTable80120 ApplesBananas 使用命名空间属性 AfricanCoffeeTable80120 Java解析XML的方式DOM解析标准由W3C定义 Java有实现 JAXP DOM方式是把整个XML文件在内存里生成一颗树 树的节点就是XML文件的元素由于DOM方式需要在内存里完整的加载和生成一颗树 如果XML过大 效率相对较低SAX解析SAX处理的优点非常类似于流媒体的优点 分析能够立即开始 而不是等待所有的数据被处理 而且 由于应用程序只是在读取数据时检查数据 因此不需要将数据存储在内存中 这对于XML文件过大时是有好处的 解析XML JDOM解析JDOM是一个开源项目 http www jdom org 它基于树型结构 利用纯JAVA的技术对XML文档实现解析 生成 序列化以及多种操作 JDOM直接为JAVA编程服务 它利用更为强有力的JAVA语言的诸多特性 方法重载 集合概念以及映射 把SAX和DOM的功能有效地结合起来DOM4J解析DOM4J 最开始是JDOM的一个分支 也是一款优秀的JAXP 使用起来非常简单 解析XML dom4j主要API介绍Document接口 表示一个XML文档ElementgetRootElement 返回一个XML文档的根元素voidsetRootElement 为一个XML文档设置根元素StringgetXMLEncoding 返回一个XML文档的字符编码的字符串voidsetXMLEncoding 设置一个XML文档的字符编码Element接口 表示XML文档的一个元素add Attributeattr 为指定的元素添加属性addAttribute Stringname Stringvalue add Texttext 为指定的元素添加文本内容addText Stringtext add Elementelement 为指定的元素添加子元素addElement Stringname Stringvalue DOM4J解析XML Element接口remove Attributeattri 从指定的元素移出指定的属性节点remove Texttext 从指定的元素移出指定的文本节点remove Elementelement 从指定的元素移出指定的子元素Attributeattribute Stringname 返回指定属性名的Attribute对象StringattributeValue Stringname 返回指定属性的值Listattributes 返回指定元素所有属性的集合IteratorattributeIterator 返回指定元素所有属性的迭代器StringgetText 返回指定元素的文本内容Listelements 返回指定元素的所有子元素的集合IteratorelementIterator 返回指定元素的所有子元素的迭代器Attribute接口 表示一个元素的属性节点StringgetValue 返回属性的值voidsetValue Stringvalue 为属性设置值 dom4j主要API介绍 Text 表示一个元素的文本节点stringgetText 返回文本节点的文本内容voidsetText Stringvalue 为文本节点赋值Branch 为XML文档中的所有节点定义的公共行为 继承自NodeAttribute Text Element Document都继承自BranchNode 表示一个XML的节点 包括属性节点 文本节点等StringgetName 返回节点的名字voidsetName Stringname 设置节点的名字Branch继承自Node dom4j主要API介绍 dom4j主要API介绍 节点类图 DocumentHelper dom4j中经常使用的工具类staticDocumentcreateDocument 创建一个XML文档staticDocumentcreateDocument ElementrootElement 用指定的根元素创建一个XML文档staticElementcreateElement Stringname 用指定的名字创建一个元素对象OutputFormat 表示一个XML文档输出的格式staticOutputFormatcreateCompactFormat 得到一个紧凑式的格式staticOutputFomatcreatePrettyPrint 得到一个格式良好的格式voidsetEncoding Stringencoding 设置输出的编码XMLWriter XML的输出流 用于输出XMLwrite Documentdoc 将Document表示的XML文档输出SAXReader 创建一个从SAX的解析中得到的DOM4J树Documentread Filefile 返回给定XML文档的Document对象Documentread InputStreamin dom4j主要API介绍 工具类 第一步在内存生成一个XML文档的DocumentDocumentdoc DocumentHelper createDocument Elementroot doc addElement persons Elementperson root addElement person addAttribute id 512323 person addElement name setText 张三 person addElement gender setText 男 第二步将第一步生成的Document输出到文件Filefile newFile src com hzw javaweb ch01 dom4j persons xml OutputFormatformat OutputFormat createPrettyPrint format setEncoding GBK XMLWriterwriter newXMLWriter newFileOutputStream file format XMLWri

温馨提示

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

评论

0/150

提交评论