第二章 XML语法
2.1 标记语法 XML标记负责提供和描述一个XML文件或数据包的内容结构.他们由界定内容的不同部分的标记(tag)组成,负责提供对特殊符号和文本宏的引用,或者将特殊指令传递给应用软件,以及把注释传递给文档编辑器. 使用<>来界定标记,与HTML相同(唯一). XML对大小写敏感.包括元素的标记名和属性值.原因:满足国际化的设计目标,大多数非英文语言并不把字母表分成若干写法,有的是无大小写之分,有的是一个大写对应多个小写等. 下面来看XML是如何满足国际化的需要的. 2.1.1 字符. XML指定的字符都在Unicode 21字符集中定义 (参见 www.unicode.org ,它与 ISO/IEC 106446 是一致的 参见 http://www.iso.ch)-- ASCII码转换成统一码只需要把16位字符的前8位填充为0(保留后8位)即可. 编码问题可以访问 Jukka Korpela 的 http://www.hut.fi/u/jkorpela.chars.html 合法的XML字符包括3个ASCII C0 控制符,其他所有可显示的字符及统一代码字符值(用16进制表示). 字符值(16进制) 描述 09 水平制表符(HT) 0A 换行(LF) 0D 回车(CR) 20..7E ASCII显示字符 80..D7FF 统一代码字符(包括"Latin-1") E000..F8FF "私有区域" F900..FFFD CJK(中日韩)兼容的象形文字 10000..10FFFF 代用集和"高度私有区域"
2.1.2 命名 在XML中使用的结构几乎总是被命名的.所有XML命名都必须以字母,下划线或冒号开头,有效字符除前面的内容外,还包括数字,连字符,句点.在实际应用中不改使用冒号,除非是用作命名空间的分隔符. XML规范还定义了一种名叫命令牌(name token 缩写)的相关观念,它可以是命名字符的任意组合而没有词首字母的任何限制. (下一章讨论) XML保留对X M L 3个字母任意大小写组合的使用权.
2.2 文档部分 一个格式正确的XML文档由3个部分组成 一个可选的序言(prolog) 文档的主体(body)由一个或多个元素组成,其形式为以个可能包含字符数据(character-data)的层次树 可选的"鱼龙混杂"的尾声(epilog),其内容包括注释,处理命令(processing instrction,PI)和/或紧跟元素树后面的空白. 2.3 元素 元素是XML标记的基本组成部分.元素使用<>标记分隔.必须成对出现. 元素是XML对内容的包容器--它可以包容字符数据,其他元素以及/或其他标记(注释,PI,实体引用等等) 2.3.1 起始标记 代表打开了一个元素,代表一个元素的开始.如: 2.3.2 结束标记 关闭一个元素 所以一个完整的带有起始,结束标记的元素应该是: 包含的内容 2.3.3 空元素标记 空元素不包含任何内容.比如想准确的指明文档中的某些特定位置.我们可以只加入起始和结束标记 XML提供了一中短小精干的标记 明确指明改元素不会有内容,也不允许有内容. 2.3.4 标记:一个简单的例子. 任何简单的ASCII文本文件都包含开始标记和结束标记.若无明确表示,开始位置即是它的父文件的物理起始位置,结束用一个特殊控制字母标记出来(CTRL-Z 或 它的16进制值 "1A") example1: 一个文本文件中内容 a simple example by yours truly this is the 3rd line of a simple 5-line text file. ...the 4th line... and lastly , a final line of text.
当同样的文本用XML表示的时候会十分的清晰.
a simple example by yours truly this is the 3rd of a simple ...the 4th line... and lastly , a final line of text 2.3.5 文档元素 格式正规的XML文档的定义形式是一个简单的层次树,每个文档都有且只有有个根节点,它被称作文档实体(document entity)或文档根(document root).这个节点可能包含PI和/或注释.而且总是包含子元素树,他们的根被称作文档元素(document element). 文档根(使用DTD或模式定义的文档描述的附属品) 2.3.6 子元素 上一个例子中元素是文档元素,而是它的子元素 2.3.7 元素嵌套 XML遵循严格的元素嵌套规则,允许混乱嵌套.层次结构必须分明.否则会出现错误. 依据现实世界中的逻辑来设计元素嵌套. 2.3.8 字符串 用单引号''或双引号""标记,如果这两个符号都出现在字符串中,要用&spos或"顶替 (后面介绍) 当字符串中有'号时,标记用""反之亦然.
2.4 字符数据 字符数据就时任何不时标记的文本,它时原始或属性值的文本内容. <>和&时标记分隔符,因此不能出现在字符数据中(CDATA部分除外,后面介绍),如果是必须的,他们必须使用实体引用&和<来代替. XML的目的是全球使用,所有这里的文本不仅限于ASCII码 2.5 属性 如果说元素是XML中的名词,那么属性就是形容词. 属性必须是分隔开的字符,不允许是数字型或不分隔的属性. 在起始标记或空标记中,属性只允许出现一次. XML允许自定义属性外,还有几个规定的特殊属性 2.5.1 <span style="FONT-SIZE: 10pt; mso-ascii-font-family: Arial; mso-hansi- |