天天看点

XML知识点滴(4)

XML知识点滴(4)

(引用文章,版权归作者,如需删除请联系我)

字符引用和实体引用

n         在字符数据中,不能有和号和小于号(<),因为未经处理的小于号(<)与和号(&)在XML 文本中往往被解释为标记的其始定界符(例外的情况见下面要介绍的CDATA段)。

n         在XML中,提供了5个预定义的实体引用,分别引用XML文档中的5个特殊字符:小于号(<)、大于号(>)、双引号(”)、单引号(’)、和号(&)。这5个特殊字符也可以通过字符引用的方式去引用。

n         字符引用和预定义实体引用都是以一个和号(&)开始并以一个分号(;)结束。如果用的是字符引用,需要在和号(&)之后加上一个井号(#),之后就是所需字符的十进制或十六进制代码(ISO/IEC 10646字符集中字符的编码)。如果用的是预定义实体引用,在和号(&)之后下上字符的助记符。

字符 字符引用(十进制代码) 字符引用(十六进制代码) 预定义实体引用
&#60; &#x3c; &lt;
&#62; &#x3e; &gt;
&#34; &#x22; &quot;
&#39; &#x27; &apos;
& &#38; &#x26; &amp;

CDATA段

n         CDATA段中包含的都是纯字符数据,CDATA段只能出现在元素的文本内容中,在属性值中不能使用CDATA段。

n         CDATA段主要用于需要将整个文本解释为字符数据而不是标记的情况下。CDATA段中的内容不被XML处理器分析,所以可以在其中包含任意的字符。例如,在XML文档中,我需要包含Jave代码,而Java代码中可能存在小于(<)、大于号(>)、双引号(”)、单引号(’)、和号(&)这些特殊字符,这时候,CDATA段就派上用场了。

n         CDATA段以字符串“<![CDATA[”开始,以字符串“]]>”结束。

注释

n         在XML文档中,可以使用注释(Comment),注释以“<!--”开始,以“-->”结束。在注释中可以包含“<”、“>”和“&”这几个标记字符,但是要注意注释中不能包含导致注释结束的“-->”序列。注释可以出现在XML声明之后、根元素之外或元素的文本内容中,不能出现在XML声明之前,不能出现在元素开始或结束标签中,也不能出现在属性列表中。

n         在XML文档中,注释可以出现在文档中其他标记之外的任何位置,另外他们还可以在文档类型声明中语法(grammar)允许的地方出现。

n         XML的注释和HTML的注释类似,都是以<!—开始,以-->结束。位于<!—和-->之间的数据将被XML处理器忽略。如:<!—This is a comment -->。

n         注释用于对文档中的内容起一个说明作用。使用注释时,要注意以下五点:

1)        注释不能出现在XML声明前,XML声明必须是文档最前面的部分。下面的情况是不允许的:

              <!—Author:啤酒-->

              <!—Date:2007-8-8-->

              <?xml version=”1.0”?>

2)        注释不能出现在标记中,下面的例子是非法的。

              <greeting<!—Begin greet-->>Hello,World!</greeting>

3)        注释可以包围和隐藏标记,但要注意的是,在注释掉标记后,要保证剩余的文本仍然是一个结构完整的XML文档。例如:

<?xml version="1.0"?>

<greeting>

     <!--

     <title>This is a greeting example</title>

     -->

     <content>Hello,World!</content>

</greeting>

              当我们将注释部分去掉的时候,文档结构仍然是完整的:

<?xml version="1.0"?>

<greeting>

     <content>Hello,World!</content>

</greeting>

4)        字符串“--”(双连字符)不能在注释中出现。下面的例子是非法的。

              <!—This is a greet example—Hello,World!-->

              这意味着,我们在注释中书写程序代码的时候,不能出现类似i--或—i这样的代码。

5)        在XML中,不允许注释以--->结尾。下面的例子是非法的。

              <!—This is a greet example--->

处理指令

n         处理指令(Processing Instructions,PI)用于特定的XML处理器或应用程序,为这些程序提供如何处理XML文档的信息。在根元素前后都可以使用处理指令。处理指令开始标签为“<?”,结束标签为“?>”。开始标签后紧接的字符串称为处理指令的名称或处理指令的目标。名称后面的内容称为该处理指令的值。处理指令可以没有值。处理指令的目标和值之间,必须用空白分隔。

n         处理指令允许文档中包含由应用程序来处理的指令。在XML中,有可能会包含一些非XML格式的数据,这些数据XML处理器无法处理,我们就可以通过处理指令来通知其它程序来处理这些数据。

n         处理指令(PI)的语法和XML声明类似,以<?开始,以?>结束。一个常见的使用样式表单的处理指令如下所示:

              <?xml-stylesheet href=”hello.css” type=”text/css”?>

在开始标记<?后的第一个字符串”xml-stylesheet”叫做处理指令的目标,它必须标识要用到的应用程序,要注意的是对于其他的非W3C定义的处理指令不能以字符串”XML”和”xml”开头;其余的部分是传递给应用程序的字符数据。应用程序从处理指令中取得目标和数据,执行要求的动作。

n         处理指令的目标可以是要使用的程序的名字,或者是一个类似于xml-stylesheet这样的很多程序可以识别的通用标识符。不同的应用程序支持不同的处理指令,对于不认识的处理指令,大多数应用程序采取忽略的方式进行处理。

n         xml-stylesheet处理指令总是放在XML声明之后,第一个元素之前。其他的处理指令可以放在除标记的内部和XML声明之前的任何位置。

n         要注意,虽然XML声明和处理指令的语法形式相似,但XML声明并不是处理指令,XML处理程序对XML声明和处理指令采取的是不同的处理方式。

n         XML文档中,“<”、“>”和“&”这几个标记字符是有特定意义的,不能在文档中随便直接出现,但是在处理指令中则可以。