xml笔记
这是学习xml的笔记
DTD语法细节:元素定义2 元素内容中可以使用如下方式,描述内容的组成关系 用逗号分隔,表示元素内容的出现顺序必须与声明时一致 <!ELEMENT (TITLE,AUTHOR,EMAIL)> 用|分隔表示任选其一,即多个只能出现一个 <!ELEMENT MYFILE(TITLE | AUTHOR | EMAIL)> 在元素内容中也可以使用+ * ? 等符号表示元素出现的次数: + 一次或多次(书+) ? 0次或一次(书?) * 0次或多次(书*) 默认方式表示必须出现一次 (书) 也可以使用圆括号()批量设置,例如 <!ELEMENT MYFILE((TITLE*,AUTHOR?,EMAIL)) | COMMENT> 属性定义 xml文档中的标签虎山行需要通过ATTLIST为其设置属性 语法格式 <!ATTLIST 元素名 属性名1 属性值类型 设置说明 属性名2 属性值类型 设置说明 …… > 例如: <!ATTLIST 商品 类别 CDATA #REQUIRED 颜色 CDATA #IMPLIED > CDATA(字符串) 对应xml文件 <商品 类别="" 颜色="" >……</商品> <商品 类别="">……</商品> 属性定义: 设置说明 #REQUIRED:必须设置该属性 #IMPILED:可以设置也可以不设置 #FIXED: 说明该属性取值固定为一个值,在XML文档 中不能为该属性设置其他值。但需要为该属性提供这个值 直接使用默认值: 在XML文档中可以设置该值也可以不设定该属性值。 若没有设置则使用默认值 例如 <!ATTLIS 页面作者 姓名 CDATA #IMPILED 年龄 CDATA #IMPILED 联系信息 CDATA #REQUIRED 网站职务 CDATA #FIXED "页面作者" 个人爱好 CDATA "上网" > 常用属性值类型 CDATA ENUMERATION ID ENTITY 属性值类型----ENUMERATION 属性的类型可以是一组取值的列表,在xml文件中设置的 属性值只能是这个列表中的某个值(枚举) 例如: <?xml version="1.0" encoding="gbk" standalone="yes"> <?DOCTYPE 购物篮[ <!ELEMENT 肉 EMPTY> <! ATTLIST 肉 品种 (鸡肉|牛肉|猪肉|鱼肉) "鸡肉"(默认值)> ]> (这种书写方式为将dtd文件直接写在xml文档中) <购物篮> <肉 品种="鱼肉"/> <肉 品种="牛肉"/> <肉/> </购物篮> 属性值类型----ID 表示属性的设置值为一个唯一值。 ID属性的值只能由字母,下划线开始,不能出现空白字符 实体定义: 实体用于为一段内容创建一个别名,以后在XML文档中就可以 使用别名引用这段内容类。 在DTD文件中定义中,一条<!ENTITY ……>语句 用于定义了一个实体。 实体可分为2种类型: 引用实体和参数实体 实体定义---引用实体 引用实体主要在XML文档中被应用 语法格式: <!ENTITY 实体名称 "实体内容">:直接转变成实体内容 引用方式: &实体名称; 举例: <!ENTITY copyright "I am a programmer"> …… ©right; copyright指向了指定内容"I am a programmer" 实体定义---
这是学习xml的笔记
参数实体 参数实体北DTD文件自身使用 语法格式:<!ENTITY 实体名称 "实体内容"> 引用方式:%实体名称; 举例: <!ENTITY % TAG_NAME "姓名 | EMAIL | 电话 | 地址"> <!ELEMENT 个人信息 (%TAG_NAME; | 生日)> <!ELEMENT 客户信息 (%TAG_NAME; | 公司名)> 举例2: <!ENTITY % common.attributes "id ID #IMPILED account CDATA #REQUIRED" > …… <!ATTLIST purchaseOrder %common.attributes;> <!ATTLIST item %common.attributes;> XML编程(CRUD) xml解析技术概述: xml解析技术分为两种:dom和sax dom解析缺点,文件不能太大,消耗内存 dom解析优点,容易进行CRUD sax解析特点:从上往下读,读取一行处理一行,只适合做读取 不适合做crud 优点:内存消耗特别小 缺点:不适合进行增删改查 xml解析开发包:Jaxp(sum) Jdom dom4j 主要学习dom4j Jaxp JAXP Jaxp开发包是J2SE的一部分,由javax.xml org.w3c.dom org.xml.sax包及其子包组成 在javax.xml.parsers包中,定义了几个工厂类,程序员调用这些 工厂类,从而实现对xml文档的解析 使用jaxp进行dom解析: javax.xml.parsers包中的DocumentBuilderFactory 用于创建DOM模式的解析器对象,DocumentBuilderFactory是一个 抽象工厂类,它不能直接实例化但是该类提供了一个newInstance 方法,这个方法会根据本地平台默认安装的解析器,自动创建 一个工厂的对象并返回。 更新xml文档: javax.xml.transform包中的Transformer类用于把代表 xml文件的Document对象转换为某种格式后进行输出,例如把 xml文件应用样式表转成一个html文档。利用这个对象,当然也可以 把Document对象重新写入到一个xml文件中。 Transformer类通过transform方法完成转化操作, 该方法接受一个源和一个目的地。我们可以通过: javax.xml.transform.dom.DOMSource类来关联要转换的documen对象 用javax.xml.transform.stream.StreamResult对象来表示数据的目的地 Transformer对象通过TransformerFactory获得 SAX解析:SAX解析允许在读取文档时,即对文档进行处理, 而不必等到整个文档加载完成才会对文档进行操作。 SAX采用事件处理的方式解析xml文件,利用SAX解析xml文档, 涉及两个部分:解析器和事件处理器: 解析器可以使用JAXP的api创建,创建出SAX解析器后, 就可以指定解析器去解析某个xml文档。 解析器采用sax方式在解析某个xml文档时,它只要解析到 xml文档的一个组成部分,都会去调用事件处理器的一个方法,解析器 在调用事件处理器的方法时,会把当前解析道德xml文件内容作为 方法参数传递给事件处理器。 事件处理器由程序员编写,程序员通过事件处理器中方法的参数, 就可以很轻松的得到sax解析器解析到的数据,从
这是学习xml的笔记
而可以决定如何对数据进行处理。 常用的事件处理器:ContentHandler(接口),常用的方法为: startElement、endElement、characters DOM4J解析xml文档: dom4j-docs-guide.html文档 XPath提取xml文档数据: 基本的XPath语法类似于在一个文档系统中定位 文件,如果路径以/开始,那么该路径就表示到一个元素 的绝对路径。 如果路径以//开始,则表示选择文档中所有满足//之后 规则的元素(无论层级关系) *表示选择所有由*之前的路径所定位的元素 方块号里的表达式可以进一步的指定元素, 其中数字表示元素在选择集里的位置,而last()函数 则表示选择集中的最后一个位置。 属性值可以被用来最为选择的准则,normalize-space函数删除 了前部和尾部的空格,并且把连续的空格串替换为一个单一的空格 count()函数可以计数所选元素的个数 name()函数返回元素的名称,start-with() 函数在该函数的第一个参数字符串是以第二个参数字符串开始的情况 返回true,contains()函数当其第一个字符串参数包含有 第二个字符串参数时,返回true. XML Schema XML Schema也是一种用于定义和描述xml文档结构与 内容的模式语言,其出现是为了克服dtd的局限性。 xml Schema VS DTD: Xml Schema 符合xml语法结构。 dom,sax等xml api很容易解析出xml schema 文档中的内容。 xml schema对名称空间支持的非常好。 xml schema比xml DTD支持更多的数据类型,并 支持用户自定义新的数据类型。 xml schema 定义约束的能力非常强大,可以对xml 实例文档做出细致的语义限制。 xml schema不能像dtd一样定义实体,比dtd更复杂, 但xml schema现在已是w3c组织的标准,正逐步取代dtd。 schema 约束快速入门: xml schema文件自身就是一个xml文件,但他的扩展名常为 .sxd 一个xml schema 文档通常称为模式文档()约束文档, 遵循这个文档书写的xml文件称为实例文档。 和xml文件一样,一个xml schema 文档必须有一个 根节点,但这个根节的名称必须为Schema 编写了一个xml Schema约束文档之后,通常需要把 这个文件中声明的元素绑定到一个URI的地址上,在xml Schema 技术中有一个专业术语来描述这个过程,即把xml Schema文档 声明的元素绑定到一个名称空间上,以后xml文件就可以通过这个 URI(即名称空间)来告诉解析引擎,xml文档中编写的元素 来自哪里,被谁约束。 Schema语法:参看w3c文档
下载文档
热门试卷
- 2016年四川省内江市中考化学试卷
- 广西钦州市高新区2017届高三11月月考政治试卷
- 浙江省湖州市2016-2017学年高一上学期期中考试政治试卷
- 浙江省湖州市2016-2017学年高二上学期期中考试政治试卷
- 辽宁省铁岭市协作体2017届高三上学期第三次联考政治试卷
- 广西钦州市钦州港区2016-2017学年高二11月月考政治试卷
- 广西钦州市钦州港区2017届高三11月月考政治试卷
- 广西钦州市钦州港区2016-2017学年高一11月月考政治试卷
- 广西钦州市高新区2016-2017学年高二11月月考政治试卷
- 广西钦州市高新区2016-2017学年高一11月月考政治试卷
- 山东省滨州市三校2017届第一学期阶段测试初三英语试题
- 四川省成都七中2017届高三一诊模拟考试文科综合试卷
- 2017届普通高等学校招生全国统一考试模拟试题(附答案)
- 重庆市永川中学高2017级上期12月月考语文试题
- 江西宜春三中2017届高三第一学期第二次月考文科综合试题
- 内蒙古赤峰二中2017届高三上学期第三次月考英语试题
- 2017年六年级(上)数学期末考试卷
- 2017人教版小学英语三年级上期末笔试题
- 江苏省常州西藏民族中学2016-2017学年九年级思想品德第一学期第二次阶段测试试卷
- 重庆市九龙坡区七校2016-2017学年上期八年级素质测查(二)语文学科试题卷
- 江苏省无锡市钱桥中学2016年12月八年级语文阶段性测试卷
- 江苏省无锡市钱桥中学2016-2017学年七年级英语12月阶段检测试卷
- 山东省邹城市第八中学2016-2017学年八年级12月物理第4章试题(无答案)
- 【人教版】河北省2015-2016学年度九年级上期末语文试题卷(附答案)
- 四川省简阳市阳安中学2016年12月高二月考英语试卷
- 四川省成都龙泉中学高三上学期2016年12月月考试题文科综合能力测试
- 安徽省滁州中学2016—2017学年度第一学期12月月考高三英语试卷
- 山东省武城县第二中学2016.12高一年级上学期第二次月考历史试题(必修一第四、五单元)
- 福建省四地六校联考2016-2017学年上学期第三次月考高三化学试卷
- 甘肃省武威第二十三中学2016—2017学年度八年级第一学期12月月考生物试卷
网友关注
- 刑法发展历程
- 提高小学生阅读水平志在有心有意(1)
- 当青春在基层绽放
- 论埃德加_乌鸦_一诗中的象征性_英文_
- 水浒传李逵性格分析 - 副本
- 韶关拿坡pizza球队简介
- 宋代南渡时期诗学思想的一个转变_戎默
- 西盟王公对1911年外蒙古独立的态度:以勒旺诺尔布、阿尔宾巴雅尔为实例
- 无聊的上午
- 2014国贸前沿!(很好)
- 潍坊十八怪
- 意境哲学探析
- 俺起腻 宣言读后感
- 谈谈学习马克思主义与社会科学方法论的体会
- 张孙超 天地人作品思想
- 试析_围城_中方鸿渐的围城人生
- 黑暗中的亲人
- 中国特色社会主义ok
- 涌动的潮流
- 莎士比亚喜剧批评在中国
- 传统文化
- 给我一个下雨天
- 城市社区老年文化建设研究_以河北廊坊新六区为例
- 历史
- 中国历史版图变迁
- 谈谈对鲁肃的评价
- 信仰就是存在
- 对潮剧的历史与价值的研究
- 印象济南之鲍山-叔牙
- 关于中国的相关资料
网友关注视频
- 沪教版八年级下册数学练习册21.3(3)分式方程P17
- 人教版二年级下册数学
- 沪教版八年级下册数学练习册21.4(1)无理方程P18
- 沪教版八年级下册数学练习册20.4(2)一次函数的应用2P8
- 三年级英语单词记忆下册(沪教版)第一二单元复习
- 沪教版牛津小学英语(深圳用) 四年级下册 Unit 4
- 19 爱护鸟类_第一课时(二等奖)(桂美版二年级下册)_T502436
- 北师大版数学四年级下册第三单元第四节街心广场
- 外研版英语七年级下册module1unit3名词性物主代词讲解
- 【部编】人教版语文七年级下册《泊秦淮》优质课教学视频+PPT课件+教案,天津市
- 外研版英语三起6年级下册(14版)Module3 Unit2
- 冀教版英语三年级下册第二课
- 【获奖】科粤版初三九年级化学下册第七章7.3浓稀的表示
- 七年级英语下册 上海牛津版 Unit9
- 第4章 幂函数、指数函数和对数函数(下)_六 指数方程和对数方程_4.7 简单的指数方程_第一课时(沪教版高一下册)_T1566237
- 《小学数学二年级下册》第二单元测试题讲解
- 冀教版英语四年级下册第二课
- 六年级英语下册上海牛津版教材讲解 U1单词
- 沪教版牛津小学英语(深圳用) 四年级下册 Unit 2
- 第12章 圆锥曲线_12.7 抛物线的标准方程_第一课时(特等奖)(沪教版高二下册)_T274713
- 8 随形想象_第一课时(二等奖)(沪教版二年级上册)_T3786594
- 二年级下册数学第三课 搭一搭⚖⚖
- 冀教版小学数学二年级下册第二周第2课时《我们的测量》宝丰街小学庞志荣
- 二年级下册数学第二课
- 七年级英语下册 上海牛津版 Unit3
- 苏教版二年级下册数学《认识东、南、西、北》
- 外研版英语三起6年级下册(14版)Module3 Unit1
- 北师大版八年级物理下册 第六章 常见的光学仪器(二)探究凸透镜成像的规律
- 沪教版八年级下册数学练习册一次函数复习题B组(P11)
- 外研版英语三起5年级下册(14版)Module3 Unit2
精品推荐
- 2016-2017学年高一语文人教版必修一+模块学业水平检测试题(含答案)
- 广西钦州市高新区2017届高三11月月考政治试卷
- 浙江省湖州市2016-2017学年高一上学期期中考试政治试卷
- 浙江省湖州市2016-2017学年高二上学期期中考试政治试卷
- 辽宁省铁岭市协作体2017届高三上学期第三次联考政治试卷
- 广西钦州市钦州港区2016-2017学年高二11月月考政治试卷
- 广西钦州市钦州港区2017届高三11月月考政治试卷
- 广西钦州市钦州港区2016-2017学年高一11月月考政治试卷
- 广西钦州市高新区2016-2017学年高二11月月考政治试卷
- 广西钦州市高新区2016-2017学年高一11月月考政治试卷
分类导航
- 互联网
- 电脑基础知识
- 计算机软件及应用
- 计算机硬件及网络
- 计算机应用/办公自动化
- .NET
- 数据结构与算法
- Java
- SEO
- C/C++资料
- linux/Unix相关
- 手机开发
- UML理论/建模
- 并行计算/云计算
- 嵌入式开发
- windows相关
- 软件工程
- 管理信息系统
- 开发文档
- 图形图像
- 网络与通信
- 网络信息安全
- 电子支付
- Labview
- matlab
- 网络资源
- Python
- Delphi/Perl
- 评测
- Flash/Flex
- CSS/Script
- 计算机原理
- PHP资料
- 数据挖掘与模式识别
- Web服务
- 数据库
- Visual Basic
- 电子商务
- 服务器
- 搜索引擎优化
- 存储
- 架构
- 行业软件
- 人工智能
- 计算机辅助设计
- 多媒体
- 软件测试
- 计算机硬件与维护
- 网站策划/UE
- 网页设计/UI
- 网吧管理