曝光台 注意防骗
网曝天猫店富美金盛家居专营店坑蒙拐骗欺诈消费者
6.2.3 CDATA
XML 实用大全
第 135 页
大多数情况下,出现在一对尖括号(<>)中的是置标,不在尖括号中的是字符数据。但是有一种情况例外,在CDATA 段中所
有文本都是纯字符数据。看起来与标记或者实体相似的仅仅是它们各自相应的文本。XML 处理器无论如何是不会解释它们的。
CDATA 段用于需要把整个文本解释为纯字符数据而并不是置标的情况。当有一个包含许多<、>、&或"字符而非置标的庞大文
本时,这是非常有用的。对于大部分C 和Java 源代码,正是这种情况。
如果想使用XML 写有关XML 的简介,CDATA 段同样非常有效。例如,在本书中包含许多小的XML 代码块,而我正在使用的字
处理器又不能顾及这些情况。但是如果把本书转换为XML,我将不得不很辛苦地用<代替全部小于号,&代替所有
“和”字符。如下所示:
<?xml version="1.0" standalone="yes"?>
<GREETING>
Hello XML!
</GREETING>
为了避免这种麻烦,可以使用一个CDATA 段表示一个不需翻译的文本块。CDATA 段以<![CDATA[ 开始并以 ]]>结束,例如:
<![CDATA[
<?xml version="1.0" standalone="yes"?>
<GREETING>
Hello XML!
</GREETING>
]]>
唯一不许出现在CDATA 段中的文本是CDATA 的结束界定符]]>。注释可能会出现在CDATA 段中,但不再扮演注释的角色。也
就是说两个注释标记和包含在它们之间的全部文本都将显示出来。
因为]]>不能出现在CDATA 段中,所以CDATA 段不能嵌套。这使得使用XML 写有关的CDATA 段相对困难些。如果
需要的话,必须去掉项目符号,并使用<、&和实体引用。
CDATA 段不常需要,一旦需要时,它是非常有用的。
6.2.4 标记
置标能够区分XML 文件与无格式文本文件。置标的最大部分是标记。前一章讲隽吮昙堑氖褂梅椒ǎ 窘诮 ㄒ灞昙遣⑻峁┦
褂梅椒ā?/p>
XML 实用大全
第 136 页
简而言之,标记在XML 文档中以<开始,以>结束,而且不包含在注释或者CDATA 段中。因此,XML 标记有与HTML 标记相同
的形式。开始或打开标记以<开始,后面跟有标记名。终止或结束标记以</开始,后面也跟标记名。遇到的第一个>该标记结
束。
6.2.4.1 标记名
每个标记都有一个名称。标记名必须以字母或下划线(_)开始,名称中后续字符可以包含字母、数字、下划线、连字符和
句号。其中不能含有空格(经常用下划线替代空格)。下面是一些合法的XML 标记:
<HELP>
<Book>
<volume>
<heading1>
<section.paragraph>
<Mary_Smith>
<_8ball>
冒号出现在标记名中从语法上讲是合法的,但是它们被保留用于命名域。命名域可以混合和匹配可能使用同名标
记的标记集合。命名域将在第18 章讨论。
以下是句法不正确的XML 标记:
<Book%7>
<volume control>
<1heading>
<Mary Smith>
<.employee.salary>
事实上标记名的规则也适用于其他许多名称,如属性名、ID 属性值、实体名和其他一些将在后面几章遇到的结构。
结束标记与起始标记同名,只是在起始尖括号后加了一个/。例如,如果起始标记是<FOO>,那么结束标记是</FOO>。下面是
前面所提到的合法起始标记所对应的结束标记:
</HELP>
XML 实用大全
第 137 页
</Book>
</volume>
</heading1>
</section.paragraph>
</Mary_Smith>
</_8ball>
XML 名称是大小写敏感的。在HTML 中的<P>和<p>是同一个标记,</p>可以结束一个<P>标记,但在XML 中却不行。下面所示
的并不是我们讨论过的合法起始标记所对应的结束标记:
</help>
</book>
</Volume>
</HEADING1>
</Section.Paragraph>
</MARY_SMITH>
</_8BALL>
尽管大小写字母均可以用在XML 的标记中,从此观点出发,我会尽可能遵循使用大写的约定。这主要是因为大写在本书中可
以更突出,但是有时使用的标记集是别人建立的,那么采用别人的习惯约定是必要的。
6.2.4.2 空标记
许多不含数据的HTML 标记没有结束标记。例如,在HTML 中没有</LI>、</IMG>、</HR>或</BR>标记。一些页面作者在所列
的项目后面确实会包含</LI>标记,一些HTML 工具也使用</LI>标记。但是HTML 4.0 标准特别否认了这一点的必要性。同
HTML 中所有没有被公认的标记一样,一个不必要的</LI>的出现对交付的输出没有任何影响。
这在XML 中不是问题。XML 的总体观点就是在分析文档时允许发现新的标记。因此没有识别的标记就不会被简单地忽略。而
且XML 处理器一定能够判明以前从没出现过的一个标记有没有结束标记。
XML 区分带有结束标记的标记,而不带结束标记的标记称为空标记。空标记以斜杠和一个结束尖括号(/>)结束。例如,<BR/>
或<HR/>。
目前的Web 浏览器处理这种标记的方法不一致,如果希望保持向后的兼容性,可以用结束标记来代替,只要在两个标记之间
不包含任何文本。例如:
<BR></BR>
XML 实用大全
第 138 页
<HR></HR>
<IMG></IMG>
在学了后续几章中的DTD 和样式单后,将会看到在必须由传统浏览器分析的文档中使用HTML 可以有多种方法保持向前和向
后的兼容性。
6.2.5 属性
在前面的章节中讨论过,起始标记和空标记可以随意地包含属性。属性是用等号(=)分隔开的名称-数值对。例如:
中国航空网 www.aero.cn
航空翻译 www.aviation.cn
本文链接地址:
XML实用大全(43)