XML知识点滴(4)
(引用文章,版权归作者,如需删除请联系我)
字符引用和实体引用
n 在字符数据中,不能有和号和小于号(<),因为未经处理的小于号(<)与和号(&)在XML 文本中往往被解释为标记的其始定界符(例外的情况见下面要介绍的CDATA段)。
n 在XML中,提供了5个预定义的实体引用,分别引用XML文档中的5个特殊字符:小于号(<)、大于号(>)、双引号(”)、单引号(’)、和号(&)。这5个特殊字符也可以通过字符引用的方式去引用。
n 字符引用和预定义实体引用都是以一个和号(&)开始并以一个分号(;)结束。如果用的是字符引用,需要在和号(&)之后加上一个井号(#),之后就是所需字符的十进制或十六进制代码(ISO/IEC 10646字符集中字符的编码)。如果用的是预定义实体引用,在和号(&)之后下上字符的助记符。
字符 | 字符引用(十进制代码) | 字符引用(十六进制代码) | 预定义实体引用 |
< | < | < | < |
> | > | > | > |
“ | " | " | " |
‘ | ' | ' | ' |
& | & | & | & |
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文档中,“<”、“>”和“&”这几个标记字符是有特定意义的,不能在文档中随便直接出现,但是在处理指令中则可以。