xml简介与使用
Xml是什么?
XML:可扩展标记语言
1.与HTML相似,HTML注重页面·展示
2.xml注重于数据的保存
3.无需预编译
4.符合w3c的标准
可扩展:可以自定义
标记:计算机所能认知的信息符号
xml的组成部分:
1.文档声明 <?xml version="1.0" encoding="UTF-8"?>
2.元素 <p></p>
3.属性 <p id="haha"></p>
4.注释 解释说明 <!-- vfgfh-->
5.特殊字符
6.CDATA区域
xml解析器不会处理,而是当成字符串原样输出
<![CDATA[xml内容]]>
xml中的注意点:
1. xml文件中只能有一个根节点
2.节点要成对出现,有开始有闭合
3.节点必须正确嵌套
4.严格区分大小写
dom,HTML 都是类似于一个倒挂的树,我们把倒挂的树称之为===》dom树
DOM:(Doucument Object Model)文档对象模型
DOM模型:

解决创建maven慢的情况
archetypeCatalog=internal
Key 和value
解析xml文件的方式:
- DOM:基于xml文档树结构的解析,把xml文件中内容都读取到内存中,比较占内存,消耗资源多。
- SAX:基于事件的解析,消耗资源小
- JDOM:针对于Java的特定的模型 满足2 8原则
- DOM4J:for(4)JDOM的一个分支,源码开放,性能优异,功能强大
DTD:Document Type Definition(文档类型定义)
1. 规范编码
- 可以让浏览器正常的显示
<!ELEMENT school (grade+)>
ELEMENT:元素,关键字
School:元素名称
Grade:子元素或者元素类型 CDATA PCDATA (Parse)解析数据,不包含子元素
():用来给元素分组
+ :该对象最少出现一次
* :0到多次,可有可无,并且可以多次
?:出现或者不出现,出现的话只能出现一次
, :元素出现的顺序
| :两者必须出现一个
DTD文档使用方式:
2.DTD分为外部DTD和内部DTD两种:
1)使用内部DTD格式:
<!DOCTYPE 根元素名称 [
<!ELEMENT 子元素名称 (#PCDATA) >
]>
2)引用外部DTD格式:
<?xml version="1.0" encoding="gb2312">
<!DOCTYPE 根元素名称 SYSTEM “outDtd.dtd”>
<根元素名称>
...
</根元素名称>
---------------
引用外部DTD时,要在DOCTYPE中使用关键词SYSTEM或PUBLIC ,后者是已经被认可的文件。
通常引用自己写的dtd文件使用SYSTEM关键词
---------------
*************************************************************************************************************************
3.DTD对元素声明
<!ELEMENT 元素名 元素内容 >
ELEMENT 关键字,表示对元素类型进行声明
元素名 为当前指定元素名称
元素内容可分为:EMPTY、子元素型、混合型、ANY和#PCDATA 5种
元素内容类型:
1)EMPTY 该元素只可能有属性而不会有元素内容。
<!ELEMENT element-name EMPTY>
实例:
<br/>
2)ANY 可以包含DTD中定义的其他任何元素或已编译的字符数据,包括PCDATA、元素或元素与PCDATA的混合内容。
<!ELEMENT element-name ANY >
3)#PCDATA 不包含其他子元素而只能有文本数据,文本数据可以是普通字符、CDATA段中的内容、字符引用和实体引用。
<!ELEMENT element-name (#PCDATA) >
4)子元素型 分为3种:序列:<!ELEMENT 根元素名称(a,b,c,d ..)> , 选择<!ELEMENT 根元素名称 (a|b|c|d..) > 混合<!ELEMENT 根元素名称((a|b),(c|d))>
5)混合型 既可以包含子元素又可以包含文本数据<!ELEMENT 根元素名 (#PCDATA | 子元素)* >
?字符:它说明元素可以出现0次或1次。
* 字符:它说明元素可以不出现,或出现1次或多次。
+ 字符:它说明元素必须出现至少一次,或者说可以出现一到多次
如:<!ELEMENT 根元素名称(a+,b?,c*,d ..)>
DTD对属性声明
<!ATTLIST 元素名 属性名 属性类型 属性限定条件>
---------------------------------------------------------
属性类型(常见):
CDATA 字符数据,即没有标记的文本
枚举 备选属性值的值列表
ID 该属性在文档中具有唯一性
IDREF 文档中元素的ID类型属性的值
IDREFS 由空格分隔的元素的多个ID
ENTITY 在DTD中声明的实体名称
ENTITIES 在DTD中声明的由空格分隔的多个实体的名称
NMTOKEN XML名称记号
NMTOKENS 由空格份额表格的多个XML名称记号
NOTATION 在DTD中声明的记法的名称
----------------------------------------------------------
属性限定条件(常见):
#REQUIRED 元素的每个实例必须具有该属性
#IMPLIED 元素实例不必包含该属性
#FIXED+固定值 属性值被指定为固定值,且用户不能改变
默认值 如果元素中不包含该属性的属性值,那么默认值将作为属性值
实体声明与引用
实体分为以下几种
1.普通实体与参数实体
1)普通实体:
<!ENTITY name "text" >
name:实体引用的名称
"text":实体的内容
引用方式:&name;
<p>&name;</p>
2)参数实体:
<!ENTITY % name "text" >
text为参数实体内容,其中不能包含如:>,<,&,',",等特殊字符,这些字符的使用可以用特有的字替代
引用方式为 : %name;
2.内部实体与外部实体
内部实体如上,,
外部实体:
<!ENTITY name PUBLIC FRI "URI" >
PUBLIC格式:实体内容是被某一个领域所认可的文件
SYSTEM:通常自己写的用这个
FRI:Formal Public Identifier 为正式公用标识符,全球唯一
xml简介与使用的更多相关文章
- XML 参考:XML基础 XML 简介
XML 参考:XML基础 -- XML简介和用途 转:http://www.cnblogs.com/Dlonghow/archive/2009/01/22/1379799.html XML 参考:XM ...
- Ehcache(02)——ehcache.xml简介
http://haohaoxuexi.iteye.com/blog/2113728 ehcache.xml简介 ehcache.xml文件是用来定义Ehcache的配置信息的,更准确的来说它是定义Ca ...
- PHP XML简介
php xml文件编程. xml简介 XML作用 1.可以作为程序间通讯的标准(ajax text xml) 2.可以作为配置文件 3.可以作为小型数据库 XML语法 一个xml文件应该包括以下几个内 ...
- 雷林鹏分享:XML 简介
XML 简介 XML 被设计用来传输和存储数据. HTML 被设计用来显示数据. 应该掌握的基础知识 在您继续学习之前,需要对以下知识有基本的了解: HTML JavaScript 如果您希望首先学习 ...
- web.xml里welcome-file欢迎页面配置及web.xml简介
web项目欢迎页面的配置 <welcome-file-list> <welcome-file>/WEB-INF/index.html</welcome-file> ...
- Dom4j下载及使用Dom4j读写XML简介(转)
Dom4j下载及使用Dom4j读写XML简介 要使用dom4j读写XML文档,需要先下载dom4j包,dom4j官方网站在 http://www.dom4j.org/目前最新dom4j包下载地址:ht ...
- Json/Xml简介和处理模型
JSON json简介 JSON是一种基于文本的数据交换格式,源自JavaScript,用于Web服务和其他连接的应用程序.以下部分介绍了JSON语法,JSON使用概述以及生成和解析JSON的最常用方 ...
- XML简介与CDATA解释
简介XML 是一种受到广泛支持的 Internet 标准,用于以一种特殊的方式编码结构化数据.实际上,以 XML 编码的数据可以通过任何编程语言解码,人们甚至可以使用标准的文本编辑器来阅读或编写 XM ...
- XML简介
xml的简介(了解) * eXtensible Markup Language:可扩展标记型语言 ** 标记型语言:html是标记型语言 ...
- Android:XML简介 & 解析方式对比(DOM、SAX、PULL)
目录 示意图 1. 定义 XML,即 extensible Markup Language ,是一种数据标记语言 & 传输格式 2. 作用 对数据进行标记(结构化数据).存储 & ...
随机推荐
- [hihoCoder] 后序遍历
The key of this problem is that we need not build the tree from scratch. In fact, we can direct obta ...
- Express入门教程:一个简单的博客
来自: http://ourjs.com/detail/56b2a6f088feaf2d031d2468 Express 简介 Express 是一个简洁而灵活的 node.js Web应用框架, ...
- iOS论App推送方案
1.APNS介绍(原生推送实现原理) 在iOS平台上,大部分应用是不允许在后台运行并连接网络的.在应用没有被运行的时候,只能通过 Apple Push Notification Service (AP ...
- ORA-08002: sequence TESTTABLE1_ID_SEQ.CURRVAL is not yet defined in this session (未完全解决)
说明: 断开连接后 重新连接执行序列号当前值查找 会报错. 解决方法一:先查询序列号下一个值 SELECT testTable1_ID_SEQ.nextval from dual;
- python3 基础数据类型
一.基础数据类型分类 python的数据类型主要包括以下几种: 1.数字 2.字符串 3.列表 4.字典 5.元组 6.集合 1.数字 int 数字主要是用于计算用的,使用方法并不多 #bit_len ...
- Virtualbox报错------>make sure the kernel module has been loaded successfully
错误描述 很久没有用virtualbox了,今天打算在virtualbox上安装一个Ubuntu系统的时候,新建好Ubuntu后启动的时候,直接报错: Cannot access the kernel ...
- 【我的Android进阶之旅】Android调用JNI出错 java.lang.UnsatisfiedLinkError: No implementation found for的解决方法
错误描述 今天使用第三方的so库时候,调用JNI方法时出现了错误.报错如下所示: 11-01 16:39:20.979 4669-4669/com.netease.xtc.cloudmusic E/a ...
- Linux(6)- redis发布订阅/持久化/主从复制/redis-sentinel/redis-cluster、nginx入门
一.redis发布订阅 Redis 通过 PUBLISH .SUBSCRIBE 等命令实现了订阅与发布模式. 其实从Pub/Sub的机制来看,它更像是一个广播系统,多个Subscriber可以订阅多个 ...
- CSS:列表样式(设置列表项的标志图案/位置)
通过CSS 列表属性能够放置.改变列表项标志.或者将图像作为列表项标志. 代码整理自w3school:http://www.w3school.com.cn 效果图: watermark/2/text/ ...
- Android Paint setXfermode
背景: dst 前景: src PorterDuff.Mode.CLEAR 清除画布上图像 PorterDuff.Mode.XOR 取两层图像的非交集部门 PorterDuff.Mo ...