XML教程——XML简介
?
第一行是XML声明:
?
这是XML处理指令的例子。处理指令以<?开始,而以?>结束。在<?后的第一个单词是处理指令名,在本例中是xml。
XML声明有version和standalone两个特性。特性是由等号分开的名称-数值对。位于等号左边的是特性名,而其值位于等号的右边,并用双引号括起来。每一个XML文档都以一个XML 声明开始,用以指明所用的XML的版本。在上例中, version特性表明这个文档符合XML 1.0 规范。XML声明还可以有standalone特性,这告诉我们文档是否在这一个文件里还是需要从外部导入文件。在本例中,以及在以后的几章中,所有的文档都在一个文件里完成,因而 standalone特性的值要设置为yes。
再看剩下三行。总体上说,这三行组成了FOO元素。分开说,<FOO>是开始标记,而</FOO> 是结束标记,Hello XML!是FOO元素的内容。读者可能要问,<FOO>标记的意义是什么?回答是"你要让它是什么就是什么"。除了几百个预定义的标记之外,XML还允许用户创建所需的标记。因而<FOO>标记可以具有用户赋于的任何意义.同一个XML文档可以用不同的标记名编写,如:
?
或是:
?
?
?
指定与了XML文件配套使用的样式单的类型为xsl及文件名为mystyle.xsl:
双引号?
这样,如果我们需要在"示例"这个标记中出现文本
需要特别注意的是,在XML中属性的取值必须用引号引起来,而在HTML中这一点并不严格要求。
回页首
CDATA
正象我们前面所说,我们可以把XML文件中除标记以外的所有内容都看作是字符数据,而把标记中的所有内容都看作置标。不过,也有一个例外。在一个特殊的标记CDATA下,所有的标记、实体引用都被忽略,而被XML处理程序一视同仁地当作字符数据看待。CDATA的形式如下:
〈![CDATA[文本内容]]〉
?
聪明的读者可能已经猜出,CDATA的文本内容中是不能出现字符串"]]〉"的,因为它代表了CDATA数据块的结束标志。
在前面讲字符数据时,我们谈到过实体引用。可想而知,当你的文本数据中包含大量特殊符号时,你不得不通篇地使用实体引用,把本来很清晰的一段文字搞得乱七八糟。例如,我们要在"示例"元素中放入了一个这么XML程序。
<联系人> <姓名>张三</姓名> <EMAIL>zhang@aaa.com</EMAIL> </联系人>
?
这时,如果没有CDATA,那么麻烦来了。这个元素需要写成下面的样子:
<示例> <联系人> <姓名>张三</姓名> <EMAIL>zhang@aaa.com</EMAIL> </联系人></示例>
?
哇,你要把所有的标记都用实体引用改写,最后写出来的东西连你自己都看不懂了。为了避免这种不便,你可以把这些字符数据放在一个CDATA数据块中,这样不管它看上去是一个标记还是一个实体引用,这些数据统统被当作字符照单全收。于是,上面的元素就可以写为这个样子:
<示例> <![CDATA[ <联系人> <姓名>张三</姓名> <EMAIL>zhang@aaa.com</EMAIL> </联系人> ]]〉〈/示例〉
?
清楚多了吧!
回页首
注释
<p>象前一节的例子中那样,有些时候,你希望XML处理器能够把你在数据中引入的标记当作普通数据而不是真正的标记来看待。这时,CDATA为你助了一臂之力。另外还有些时候,就象在程序中引入注释一样,你可能希望在XML文件中加入一些用作解释的字符数据,并且希望XML处理器不对它们进行任何处理。这种类型的文本称作注释(COMMENT)文本。</p>
在HTML中,注释是用"〈!--"和"--〉"引起来的。在XML中,注释的方法完全相同。因此,下面是一个合法的XML(但不是形式良好的)文件: <示例>
<!-- 一个XML的例子 --> <![CDATA[ <联系人> <姓名>张三</姓名> <EMAIL>zhang@aaa.com</EMAIL> </联系人> ]]> </示例>
?
不过,在XML文件中使用注释时,同样要遵守几个规则:
在注释文本中不能出现字符"-"或字符串"--",XML处理器可能把它们和注释结尾标志"-->"相混淆。
不要把注释文本放在标记之中。类似地,不要把注释文本放在实体声明中,也不要放在XML声明之前。记住,永远用XML声明作为XML文件中的第一行。
注释不能被嵌套。在使用一对注释符号表示注释文本时,要保证其中不再包含另一对注释符号。例如下面例子是不合法的:
<!-- 一个XML的例子 <!--以上是一个注释-->-->
?
最后再重申一遍,XML处理器对于注释中的一切内容都会视而不见,注释中出现的标记也一同被忽略。
回页首
形式良好的XML
为了使一个文档"形式良好",XML文档中的所有置标和字符数据必须遵守前几节中给出的规则。而且有几条关于如何把置标和字符数据相互联系起来的规则。这些规则总结如下:
?
文章来源: http://www.ibm.com/developerworks/cn/xml/x-cert/part1/index.html