Android的界面开发采用了XML配置的方式, 这样大大降低了编码量, 给UI设计带来了方便的模式.
本篇主要是写一些XML方面的基本常识:
1. xmlns是什么意思?
xml namespace:
Namespaces翻译为名字空间。名字空间有什么作用呢?当我们在一个XML文档中使用他人的或者多个DTD文件,就会出现这样的矛盾:因为
XML 中 标识都是自己创建的,在不同的DTD文件中,标识名可能相同但表示的含义不同,这就可能引起数据混乱。
比如在一个文档<table>wood table</table>中<table>表示桌子,
而在另一个文档<table>namelist</table>中<table>表示表格。如果我需要同时处理这两 个文档,就会发生名字冲突。
了解决这个问题,我们引进了namespaces这个概念。namespaces通过给标识名称加一个网址(URL)定位的方法来区别这些名称相同的标 识。
Namespaces同样需要在XML文档的开头部分声明,声明的语法如下:
<document xmlns:yourname='URL'>
其中yourname是由你定义的namespaces的名称,URL就是名字空间的网址。
假设上面的"桌子<table>"文档来自http://www.zhuozi.com,我们就可以声明为
<document xmlns:zhuozi='http://www.zhuozi.com'>
然后在后面的标识中使用定义好的名字空间:
<zhuozi:table>wood table</table>
这样就将这两个<table>区分开来。注意的是:设置URL并不是说这个标识真的要到那个网址去读取,仅仅作为一种区别的标志而已。
2.DTD文件时什么?
- DTD为英文Document Type Definition,中文意思为“文档类定义”。DTD肩负着两重任 务: 一方面它帮助你编写合法的代码 ,另一方面它让浏览器正确地显示器代码。也许你会问它们居然有这样的能力?
- 如是你是一个个网页制作者,你会很清楚地知道一个HTML文档的基本结构可分为两个主要部分;
- < html > < head > 头部信息 </ head > < body > 可视内容 </ body > </ html > 上面的代码你是再熟悉不过的了。但你知道下面的代码既是正确的又是错误的吗?
- < P align = "center" > 这 是一个居中段落 </ P >
- 在XHTML中,标记是区分大小写的,上面的代码毫无意义。可在HTML中它是一个居中段落。浏览 器是怎样处理这种情况呢?难道浏览器认为你写的是HTML,然后把它作为一个一个居中段落显示?如是你写的是XHTML呢,它将是一段不可显示的代码!浏 览器是怎样知道你用的是什么标记语言然后正确对待这段代码呢?
- 这就是DTD的工作了。一个DTD应该放在每一个文档的第一行(包括空白).这样正确地放置,你的 DTD才能告诉浏览器的用的是什么标记语言。在通常情况下,如果你编写的是正确代码,并拥有一个合适的DTD,浏览器将会根据W3C的标准显示你的代码。
- 如果说你没有使用DTD,你将很难预测浏览器是怎样显示你的代码,仅仅在同一浏览器就有不同的显示 效果。尽管你的网页做得非常飘亮,要是没有使用DTD,你的努力也是白费的。因此,一个DTD是必不可少的。
- 如果你正在做网页,你的DTD应该反映出你用的是什么标记语言。下面是一个DTD列表,你应该使用 其中之一。
- XHTML 1.1
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd" >
- XHTML1.0 Strict DTD(严格的文档类定义):要求严格的DTD,你不能使用表现 标识和属性,和CSS一同使用。完整代码如下:
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" >
- XHTML1.0 Transitional DTD(过渡的文档类定义):要求非常宽松的 DTD,它允许你继续使用HTML4.01的标识(但是要符合xhtml的写法)。完整代码如下:
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
- XHTML1.0 Frameset DTD(框架集文档类定义):专门针对框架页面设计使用的 DTD,如果你的页面中包含有框架,需要采用这种DTD。完整代码如下:
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd" >
- HTML 4.01 Strict DTD (严格的文档类定义)不能包含已过时的元素(或属性)和框架 元素。对于使用了这类DTD的文档,使用如下文档声明:
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
- "http://www.w3.org/TR/html4/strict.dtd" > HTML 4.01 Transitional DTD(过渡的文档类定义)能包含已 过时的元素和属性但不能包含框架元素。。对于使用了这类DTD的文档,使用如下文档声明:
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd" > HTML 4.01 Frameset DTD(框架集文档类定义)。能包含已过时的 元素和框架元素。。对于使用了这类DTD的文档,使用如下文档声明:
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
- "http://www.w3.org/TR/html4/frameset.dtd" > HTML 3.2
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN" >
- HTML 2.0
- <!DOCTYPE html PUBLIC "-//IETF//DTD HTML 2.0//EN" >
- 下面是一个合法的HTML文档。
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" > < html > < head > 头部信息 </ head > < body > 可视内容 </ body > </ html >