您的位置:首页 > 其它

[转]XML学习笔记--第2章 良构的XML文档

2012-03-08 13:05 225 查看


[align=center][/align]



内容概要:

如何用开始标签和结束标签定义一个元素
如何用属性进一步描述标签
如何把文档声明为xml类型
如何给处理xml文档的应用程序传递指令
哪些字符不允许出现在xml文档里,但又如何在文档中使用这些字符

2.1 解析xml文档

使用xml解析器。

常见的解析器有:

MSXML:微软的xml解析器

Apache Xerces

Expat
2.2 标签、文本和元素(简略)
<first>是开始标签

</first>是结束标签

<first> John</first>是元素
其中,John是文本内容,又称PCDATA(Parsed Character Data)、文本节点。
写法注意:标签内部的开头不可有空格,而结尾处可有空格
2.2.1 定义元素的规则

元素的开始标签必有结束标签与之对应(自封闭标签除外self-closing tag)

标签不能重叠,必须正确嵌套

一个xml文档中只能有一个根元素

元素命名必须遵循xml命名规则

xml是区分大小写的

xml保留PCDATA里的空白符(white space)

PCDATA中的空白符
空白符:包括空格符、换行符和跳格符
(1)HTML中:去年多余的空白符。因HTML是用来显示信息的,写HTML时为了易读而加入了空白符,但在显示时则去掉了多余的空白符(多余的空格、换行或跳格均看作是一个空格)
要显示空格:用 
要显示换行:用<br>标签
或使用<pre>标签 (pre标签的另个作用是让字符以“等宽”格式进行显示。
(2)XML中:不删除PCDATA中多余的空白符。(注意:用IE浏览器查看xml代码时,空白符也被删除了,是因为IE先把xml用xlt技术转换为html再显示的)
额外空白符:指出现在PCDATA以外地方的空白符,也就是出现在标记里的空白符,xml删除额外空白符。额外空白符是为了增加“可读性”。
解析器如何 决定什么是空白符?
标签内只含有元素,则里边的空白符为额外空白符;标签内有PCDATA或PCDATA和元素共存时,空白符看作是数据的一部分。
...........
2.5 空元素(无PCDATA的元素)
<middle></middle> 也可写作<middle/>
使用情形:

元素把全部数据都放到了属性里

只需要元素名,如xhtml中的<br/>

2.6 xml声明语句
为什么要声明?
对于windows,不声明也可以,只要存为.xml文件解析器即可识别;但对于其它OS,这样则不可,必须声明。结果,加上声明是个好习惯。(声明还可提供其它信息,如版本、编码、独立性)
语句:<? xml version = "1.0" ?>,其中xml声明了当前文档是个xml类型,version说明了版本号。
最全:<? xml version="1.0" encoding="UTF-16" standalone="yes" ?>
version必有,encoding和standalone是可选的。encoding指定编码,standalone表明该文档是否依赖其它文件。
2.7 处理指令(向处理xml的应用程序传递指令)
语法 :<?应用程序名 程序要执行的行为 ?>
里边的应用程序又叫“应用目标程序”---PITarget(Processing Instruction Target)
2.8 非法的PCDATA字符----- < 和 &
原因:xml中用‘<’表示开始一个新元素;用&表示一个实体。
术语解释:PCDATA(parsed Character data),即被解析的字符数据,解析器会对此类数据进行解析,如上所说。
CDATA(Character Data),字符数据,解析器对此类数据不进行解析,< 和 & 维持原样。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: