1、XML(最主要的是用于配置文件)
1.1 什么是XML
XML全称是Extensible Markup Language,意思是可扩展的标记语言。
XML与HTML的比较:在语法上比较相似,但HTML中的元素是固定的,
而XML的标签是由用户定义的。
1.2 XML语法
A、XML文档声明 <?xml version="1.0" encoding="UTF-8"?>
1.文档声明必须为<?xml 开头,以?>结束;
2.文档声明必须从文档的0行0列位置开始;
3.文档声明资源三个属性
a.version:指定XML文档版本,选择1.0
b.encoding:指当前文档的编码,默认为UTF-8;
B、元素命名
a.区分大小写、不能使用空格和冒号、不建议以XML,xml,Xml开头。
b.普通元素的结构开始标签、元素体、结束标签组成。例如:<hello>大家好</hello>
c.元素体:可以是元素,也可以是文本,例如:<b><a>你好</a></b>
d.空元素:只有开始标签,而没有结束标签,但元素必须自己闭合,例如:<c/>
e.格式良好的XML文档,只能有一个根元素;
C、属性 <web-app version="2.5">
注意:a.一个元素中有多个属性,但是一个元素中不能出现同名属性;
b. 属性名不能用空格、冒号等特殊符号,且必须以字母开头;
c.属性的定义格式:属性名=属性值,其中属性值必须使用单引和双引
D、注释
注释和HTML完全相同,即以"<!--"开始,以"-->"结束;
E、CDATA区
<![CDATA[
任意内容!
]]>
当大量的转义字符出现在xml文档中时,会使xml文档的可读性大幅度降低;
这时如果使用CDATA段会好很多。
2、DTD约束
常见的xml约束:DTD、Schema
2.1 DTD定义
DTD(Document Type Definition),文档类型定义,用来约束XML文档。规定XML文档中元素的名称,
子元素的名称和顺序,元素的属性等;
2.2 DTD重点要求
xml解析:将数据存储在xml后,我们希望通过程序获得XML的内容。
3.1 解析方式(面试常考)
1.DOM:要求解析器把整个XML文档装载到内裤,并解析成一个Document对象;
2.SAX:是一种速度更快,更为有效的方法。它逐行扫描文件,一遍扫描一边解析。
并以事件驱动的方式进行具体解析,每执行一行,都将触发对应的事件;
3.PULL:Android的内置的XML解析方式,类似SAX。
1.1 什么是XML
XML全称是Extensible Markup Language,意思是可扩展的标记语言。
XML与HTML的比较:在语法上比较相似,但HTML中的元素是固定的,
而XML的标签是由用户定义的。
1.2 XML语法
A、XML文档声明 <?xml version="1.0" encoding="UTF-8"?>
1.文档声明必须为<?xml 开头,以?>结束;
2.文档声明必须从文档的0行0列位置开始;
3.文档声明资源三个属性
a.version:指定XML文档版本,选择1.0
b.encoding:指当前文档的编码,默认为UTF-8;
B、元素命名
a.区分大小写、不能使用空格和冒号、不建议以XML,xml,Xml开头。
b.普通元素的结构开始标签、元素体、结束标签组成。例如:<hello>大家好</hello>
c.元素体:可以是元素,也可以是文本,例如:<b><a>你好</a></b>
d.空元素:只有开始标签,而没有结束标签,但元素必须自己闭合,例如:<c/>
e.格式良好的XML文档,只能有一个根元素;
C、属性 <web-app version="2.5">
注意:a.一个元素中有多个属性,但是一个元素中不能出现同名属性;
b. 属性名不能用空格、冒号等特殊符号,且必须以字母开头;
c.属性的定义格式:属性名=属性值,其中属性值必须使用单引和双引
D、注释
注释和HTML完全相同,即以"<!--"开始,以"-->"结束;
E、CDATA区
<![CDATA[
任意内容!
]]>
当大量的转义字符出现在xml文档中时,会使xml文档的可读性大幅度降低;
这时如果使用CDATA段会好很多。
2、DTD约束
常见的xml约束:DTD、Schema
2.1 DTD定义
DTD(Document Type Definition),文档类型定义,用来约束XML文档。规定XML文档中元素的名称,
子元素的名称和顺序,元素的属性等;
2.2 DTD重点要求
开发中,我们基本上都是通过框架提供的DTD约束文档,编写对应的XML文档;
xml解析:将数据存储在xml后,我们希望通过程序获得XML的内容。
3.1 解析方式(面试常考)
1.DOM:要求解析器把整个XML文档装载到内裤,并解析成一个Document对象;
2.SAX:是一种速度更快,更为有效的方法。它逐行扫描文件,一遍扫描一边解析。
并以事件驱动的方式进行具体解析,每执行一行,都将触发对应的事件;
3.PULL:Android的内置的XML解析方式,类似SAX。