• 热门标签

当前位置: 主页 > 航空资料 > 计算机 >

时间:2010-08-09 13:24来源:蓝天飞行翻译 作者:admin
曝光台 注意防骗 网曝天猫店富美金盛家居专营店坑蒙拐骗欺诈消费者

<!ATTLIST SOUND PLAYER NOTATION (MP | SM | ST) #REQUIRED>
这表明SOUND 元素的PLAYER 属性值可设置为MP、ST 或SM。下一章对此再作进一步的研究。
乍看上去,这种处理方法与其余列表属性(如ENTITIES 和NMTOKENS)处理方法好像不一致;但其实这两种方法截然
不同。ENTITIES 和NMTOKENS 在文档的实际元素中具有一个属性列表,但在DTD 的属性声明中仅有一个值。可是文档中实际
元素的NOTATION 属性值仅有一个。可取值的列表位于DTD
的属性声明中。
XML 实用大全
第 306 页
10.6 预定义属性
在某种程度上说,可以在XML 中预定义两个属性。必须在DTD 中为将应用的每一元素声明这两个属性,但是仅仅可以为原定
目标而使用这些声明的属性。通过在属性名前加xml:来标识这类属性。
这两类属性分别为xml:space 和xml:lang。Xml:space 属性描述如何对待元素中的空格;xml:lang 属性描述书写元素
的语言(以及可选的方言和国别)。
10.6.1 xml:space
在HTML 中,空格并不重要。尽管一个空格和没有空格之间的差别是非常重要的,但是一个空格和两个空格、一个空格和一
个回车符、一个空格三个回车符和12 个制表符之间的差别并不重要。对某些文本来说,空格非常重要,如计算机源代码、
某些大型机数据库报告或者e.e.cumming 的诗文,可使用PRE 元素指定等宽的字体和保留空格。
不过,XML 的缺省方式为保留空格。XML 处理器毫不改变地传送全部空格字符给应用程序。应用程序通常忽略额外的空格。
可是XML 处理器可通知应用程序某些特定的元素包含需保留的、意义重大的空格。作者可使用xml:space 属性,为应用程
序说明这些元素。
如果元素包含重要的空格,DTD 将为xml:space 属性提供一个<!ATTLIST>标记。这个属性具有枚举类型,其值为default
和preserve。如清单10-3 所示。
清单10-3:用XML 编码的具有重要空格的Java 源代码
<?xml version="1.0" standalone= "yes"?>
<!DOCTYPE PROGRAM [
<!ELEMENT PROGRAM (#PCDATA)>
<!ATTLIST PROGRAM xml:space (default|preserve) preserve >
]>
<PROGRAM xml:space= "preserve">public class AsciiTable {
public static void m in (String[] args) {
for (int i = 0; i &lt; 128; i++) {
System.out.println(i + " "+ (char) i);
}
}
}
</PROGRAM>
XML 实用大全
第 307 页
不管xml:space 值为default 或preserve,全部空格都传送给应用程序。可是,若值为default,应用程序按正常方式处
理额外的空格;若值为preserve,则按有特殊意义的态度对待这些额外的空格。
空格的特殊意义在某种角度来说依赖于数据的最终目标。例如,Java 源代码中的额外空格仅与源代码的编辑器有关,
但与编译器无关。
已定义xml:space 属性元素的子元素,除非子元素定义了与原值相矛盾的xml:space 属性,否则将表现出与其父元素相似
的行为(保留或不保留空格)。
10.6.2 xml:lang
xml:lang 属性标识书写元素内容的语言。属性值可以为CDATA、NMTOKEN 或者枚举列表类型。理想的情况下,每一个属性
值均为原始ISO-639 标准定义的两个字母语言代码。代码列表可在下述Web 地址处找到:
http://www.ics.uci.edu/pub/ietf/http/related/iso639.txt。
例如,研究下面两个例子,其中的句子取自Petronius 的 Satiricon,分别用拉丁文(Latin)和英文(English)书写。一
个SENTENCE 标记包装了这两个句子,但是第一个句子标记使用的xml:lang 属性值为“Latin”,而第二个句子中其值为
“English”。
拉丁文(Latin):
<SENTENCE xml:lang="la">
Veniebamus in forum deficiente now die, in quo notavimus frequentiam rerum venalium, non quidem pretiosarum sed
tamen quarum fidem male mbulantem obscuritas temporis facillime tegeret.
</SENTENCE>
英文(English):
<SENTENCE xml:lang= "en">
We have come to the marketplace now when the day is failing, where we have seen many things for s le, not for
the valuable goods but rather that the darkness of the time may most easily conceal their shoddiness.
</SENTENCE>
说英语的读者很容易区分哪个为原稿,哪个为译 本;计算机可根据xml:lang 属性提供的线索进行区分。这个差别可确定拼
写检查器决定如何检查特定的元素和决定使用哪个词典。搜索引擎可以检查这些语言属性,然后确定如何检索页面内容和返
回基于用户优先选择的匹配结果。
语言种类过多,而代码不足
XML 在使用语言代码问题上依然有点落后原始的ISO-639 标准语言代码由两个不分大小写的ASCII 字母
XML 实用大全
第 308 页
字符构成;这标准允许的代码数目不能超过676 种不同的代码(26*26),可是现在地球上使用的语言远
远不止676 种(即使不包括类似Etruscan 这种已经消亡的语言)。实际上,合理的代码还少于676 种,
因为语言的缩写必须与语言的名字具有一定的关系。
ISO-639 标准的第二部分使用三个字母的代码,可处理地球上使用的所有语言。可是XML 标准规范要求使
用两个字母代码。
语言(language)属性应用在元素及其所有的子元素上,除非其中某个子元素声明了不同的语言。前面的SENTENCE 元素可
按如下方式进行声明:
<!ELEMENT SENTENCE (#PCDATA)>
<!ATTLIST SENTENCE xml:lang NMTOKEN "en">
假如没有适当的ISO 代码可利用,也可利用在IANA 注册的代码之一,虽然现在IANA 仅增加了四种附加代码(如表10-2 所
示)。最新的列表可在下面的地址处找到:
http://www.isi.edu/iana/assignments/language/tags。
 
中国航空网 www.aero.cn
航空翻译 www.aviation.cn
本文链接地址:XML实用大全(89)