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

XML高级编程上(10)

时间:2010-08-09 13:05来源:蓝天飞行翻译 作者:admin 点击:
  
述和建模,它们能够支持传统印刷目录的所有功能。对于那些只能在I n t e r n e t上做到的电子商务
功能,这些将成为其实现的基础。
你可以在h t t p : / / w w w. w 3 . o rg / X M L找到XML 1.0推荐标准( 和其他信息)。在
http://www.xml.com/axml/axml.html还有一个该标准的带注释的版本。
2.1 标记语法
X M L标记负责提供和描述一个X M L文件或数据包(也就是大家所熟知的X M L实体)的内容
结构。它们由界定内容的不同部分的标记( t a g)组成,
负责提供到特殊符号和文本宏的引用,或者将特殊指
令传递给应用软件,以及把注释传递给文档编辑器。
相信你们对H T M L元素的标记已经很熟悉了(参
见图2 - 1)。
X M L元素的结构与H T M L基本相同,X M L也同样
使用尖括号来界定标记—以小于号( <)起始、大
于号(>)结尾。但二者的相同点也就仅此而已。
与H T M L不同,几乎所有的X M L标记都是大小写敏感的,其中包括元素的标记名和属性
值;也就是说:
之所以大小写敏感,主要是满足X M L国际化的设计目标和简化处理过程的需要。大多数非
英语语言并不把字母表分成若干种写法,(即使是罗马字符)许多字母可能也没有对应的大写或
小写。例如,在法语中“ ç”就不一定是“ ç”(也可以是“C”)。希腊字母“西格马”只有一个
大写形式,但却有两个小写形式;阿拉伯语则对每一个字母使用多种形式的写法;等等。合并
写法会存在许多缺陷,尤其是对于非A S C I I码更是如此,而X M L的设计者们大多选择避免这些
问题。
下面让我们看一看X M L是如何满足国际化的需要的。
2.1.1 字符
由于X M L是要在全球范围内使用的,所以不能局限于7位的A S C I I码字符集。X M L指定的字
标记
属性
元素
内容标记
图2-1
符均在1 6位的Unicode 2.1字符集(参见h t t p : / / w w w. u n i c o d e . o rg—它目前与ISO/IEC 10646是一
致的—参见h t t p : / / w w w. i s o . c h)中定义。这些都是相对较新的标准,而且当今世界还有许多文
字没有编入统一码当中。但是,由于它被设计为大多数现存字符编码的超集,所以遗留的内容
向统一码的转换也是简单直观的。例如,把A S C I I码转换成统一码只需要把1 6位字符的前8位填
充为0(而保留后8位)即可。
计算机字符史上还有一段关于连字符的小插曲(例如与从各类排版系统继承而来的“ f i”或
“ff”字符组合),此外还有早期对日文处理的尝试所采用的“半宽片假名”。虽然这些奇谈怪论
都包含进了统一码标准,但并不鼓励大家使用—例如连字符就不是真正的字符,它们只是某
种形式的印刷样式,能够以最好的方式处理文本显示,但并不嵌入到文本数据中。
访问由Jukka Korpela制作的页面h t t p : / / w w w. h u t . f i / u / j k o r p e l a / c h a r s . h t m l,可以看到关于字符
编码问题的一个很好的介绍。
合法的X M L字符包括三个ASCII C0控制符,所有普通的A S C I I可显示字符,以及所有其他
统一代码字符值(用十六进制表示),可参见表2 - 1。
表2 - 1
字符值(十六进制) 描述
0 9 水平制表符( H T)
0 A 换行(L F)
0 D 回车(C R)
20 .. 7E A S C I I显示字符
80 .. D7FF 统一代码字符(包括“ L a t i n - 1”)
E000 .. F8FF “私有区域”
F900 .. FFFD C J K(中日韩)兼容的象形文字
10000 .. 10FFFF 待用集和“高度私有区域”
统一代码中包含一个数量超过137 000的字符集合用于应用程序特定字符,它被称作“保留
区域”。当然,使用这些私有字符进行任何X M L数据的交换都需要就这些字符的解释单独达成一
致,所以统一代码的这个部分不应该在X M L数据对象中使用,因为它们需要在相当广的范围内
进行交换。
2.1.2 命名
在X M L中使用的结构几乎总是被命名的。所有X M L命名都必需以字母、下划线( _)或冒
号(:)开头,后面跟着的是有效命名字符。有效命名字符除了前面的内容,还包括数字、连字
符(-)、句点(.)。在实际应用当中不应该使用冒号,除非是用作命名空间的分隔符(参见第7
章)。记住字母并非局限于A S C I I码是非常重要的,因为不说英语的人们可以把自己的语言用在
标记当中。
X M L规范还定义了一种名叫命名令牌( name token,通常缩写为n m t o k e n)的相关观念,
它可以是命名字符的任意组合而没有词首字母的任何限制。除了它能够使用在属性值
第2章XML 语法使用21
下载
(后面将介绍)中这个问题,我们不想在本章过多地讨论命名令牌,但是当我们在下一章
开始讨论有效XML文档时,它们就变得很重要了。
在命名方面另一个限制是它们不能由字符串“ x m l”、“X M L”或任何以此顺序排列的这三
个字母的各类组合(例如“ x M L”或“X m l”)开头。W 3 C保留对以这三个字母开头的命名的使
用权。
下面就是一些合法的命名:
注意前两个命名并不等同—这一点我们前面已经讨论过, X M L的命名是大小写敏感的。
第三个是使用建议的命名空间分隔符(冒号)的典型例子—在第7章你可以了解到关于命名空
间的更多信息。最后两个例子提醒大家注意希腊语和法语同英语一样,都可以用作X M L的命名。
下面是一些非法的命名:
头两个例子开头使用的字母(“-”和“4”)虽然是合法的命名字符,但作为首字母却是非法
的。第三个和第四个例子的字符根本就是非法字符(“$”和上标“ 2”)。最后两个例子违反了
“x m l是保留字符”的限制(当然,如果它们是由W 3 C定义的则是另外一回事了)。在这种情况或
 
中国航空网 www.aero.cn
民航翻译 www.aviation.cn
本文链接地址:XML高级编程上(10)
 
------分隔线----------------------------