首页 > 代码库 > XML学习笔记

XML学习笔记

XML声明

XML声明放在XML文件的第一行,包括XML的版本和使用的编码。XML声明用于指导XML解析器解析该XML文件。例如以下:
<?xml version="1.0" encoding="ISO-8859-1"?>

上面的样例定义 XML 的版本号 (1.0) 和所使用的编码 (ISO-8859-1 = Latin-1/西欧字符集)。

XML版本号号:解析器以哪一个XML版本号规范解析文件。

XML编码:解析器以哪种文件编码格式解析文件。
XML编码定义的约定:
假设XML文件里仅仅有标准的ASCII编码,则无需在XML声明中显示定义编码格式。
假设XML文件是Unicode编码,而且文件有BOM(Byte Order Mark),则能够通过BOM确定採用的编码方式,也无需在XML声明中显示定义编码格式。
假设XML文件是Unicode编码,但没有BOM,则必须在XML声明中显示定义编码格式。

假设XML文件是其他编码格式,则必须在XML声明中显示定义编码格式。


XML命名空间

XML命名空间採用xmlns属性定义在XML元素中。例如以下:
<f:table xmlns:f="http://www.w3school.com.cn/furniture">
   <f:name>African Coffee Table</f:name>
   <f:width>80</f:width>
   <f:length>120</f:length>
</f:table>

命名空间的作用:能够理解为java的包(package),命名空间和元素名称一起组成了XML元素的全局唯一的限定名(qualified name),能够避免解析器解析不同xml文件里的元素名称冲突。

命名空间的定义:命名空间定义由两部分组成,前缀和空间名称。上面的样例中,f是前缀,http://www.w3school.com.cn/furniture是空间名称。

空间名称的作用是赋予命名空间一个惟一的名称空间名称的作用是赋予命名空间一个惟一的名称,通常採用一个URL。该URL不一定要指向一个实际存在的网页,但非常多公司经常会将该URL指向一个包括关于命名空间信息的网页。
因为空间名称通常比較长,採用简化的前缀放在元素名前,以避免xml文档过于冗长,难以阅读。
命名空间的作用范围:作用范围为命名空间定义所在的元素的全部内容,相应到上面的样例,命名空间xmlns:f="http://www.w3school.com.cn/furniture"的作用范围为<table>和</table>之间。
默认命名空间:假设定义时不定义前缀,则命名空间定义范围内全部元素採用该命名空间作为缺省命名空间。如:
<table xmlns="http://www.w3school.com.cn/furniture">
   <name>African Coffee Table</name>
   <width>80</width>
   <length>120</length>
</table>

这个样例中,table,name,width,length元素的命名空间都是http://www.w3school.com.cn/furniture。


XML相关知识索引



參考资料

http://www.oracle.com/technetwork/cn/articles/srivastava-namespaces-098626-zhs.html

http://www.w3school.com.cn/

XML学习笔记