• 热门标签

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

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

正规的。
表A - 3 3
格式正规的外部解析实体
[ 7 8 ] e x t P a r s e d E n t : : = TextDecl? Content
[ 7 9 ] e x t P E : : = TextDecl? extSubsetDecl
附录A XML 1.0规范使用833 下载
如果内部通用解析实体的置换文本与c o n t e n t产生式匹配,它被认为是格式正规的。根据定
义,所有内部参数实体都是格式正规的。
格式正规的实体将使得X M L文档的逻辑结构和物理结构能够正确嵌套;起始标记、结束标
记、空元素标记、元素、注释、处理指令、字符引用和实体引用都不能跨越实体。
4.3.3 实体中的字符编码
X M L文档中的每个外部解析实体都可以采用不同的字符编码机制。所有X M L处理器都必须
接受U T F - 8或U T F - 1 6的实体。
采用U T F - 1 6编码的实体必须以ISO/IEC 10646附录E和统一码附录B中描述的字节顺序标记
(零宽度不间断空格字符, # x F E F F)开始。这是一个编码信号,而不是X M L文档标记或字符数
据的一部分。X M L处理器必须使用该字符区分采用U T F - 8和U T F - 1 6编码的文档。
虽然本规范仅要求X M L处理器能够读取以U T F - 8和U T F - 1 6编码的实体,但是它也可以识别
其他编码机制,并读取采用这些编码的实体。如果解析实体不是以U T F - 8或U T F - 1 6编码的,它
必须以包含编码声明的文本声明开始。
表A - 3 4
编码声明
[ 8 0 ] E n c o d i n g D e c l : : = S 'encoding' Eq ('"' EncName '"' | "'"
EncName "'" )
[ 8 1 ] E n c N a m e : : = [A-Za-z] ([A-Za-z0-9._] | '-')* /* 编码名称只能
包含拉丁字符* /
在文档实体中,编码声明是X M L声明的一部分。E n c N a m e是所采用的编码的名称。
在编码声明中,值“ U T F - 8”、“U T F - 1 6”、“I S O - 1 0 6 4 6 - U C S - 2”和“I S O - 1 0 6 4 6 - U C S - 4”对
应于各种统一码和ISO/IEC 10646编码和相应的变种,值“ I S O - 8 8 5 9 - 1”、“I S O - 8 8 5 9 - 2”⋯⋯
“I S O - 8 8 5 9 - 9”对应于ISO 8859编码的各个部分,值“ I S O - 2 0 2 2 - J P”、“S h i f t _ J I S”和“E U C - J P”
对应于JIS X-0208-1997的各种编码形式。X M L处理器可以识别其他编码;本规范建议除了上面
列出的编码之外,对于I A N A注册的字符编码(字符集),应该使用它们的注册名称来引用。需
要注意的是,这些注册名称是不区分大小写的,因此处理器也应该以这种方式处理它。
在缺少外部传输协议(例如, H T T P或M I M E)所提供的信息的情况下,如果包含编码声明
的实体采用的编码方式与所声明的不同,或者实体既没有以字节顺序标记开始,又没有声明使
用非U T F _ 8编码,则X M L处理器会认为出现了错误。注意,由于A S C I I码是U T F _ 8的子集,因此
从严格意义上来说,普通的A S C I I实体并不需要编码声明。
当Te x t D e c l不是出现在外部实体的开始处时,将产生一个错误。
当X M L处理器无法处理实体的编码时,将产生致命错误。
下面是编码声明的例子:
4.4 XML处理器对实体和引用的处理
下面的表格总结了字符引用、实体引用和未解析实体引用可能出现的位置,以及对于每种
834使用XML 高级编程
下载
情况X M L处理器应该具备的处理功能。最左列中的标签描述了它们所在的上下文环境。
内容中的引用
作为引用出现在元素的起始标记和结束标记之间;对应于非终结符c o n t e n t。
属性值中的引用
作为引用出现在起始标记中的属性值中或属性声明的缺省值中,对应于非终结符A t t Va l u e。
作为属性值出现
作为名称而不是引用,它可以作为E N T I T Y类型的属性值,或者作为E N T I T I E S类型的属性
值中以空格分隔的一个记号。
实体值中的引用
作为引用出现在参数实体声明或内部实体声明的文字实体值中;对应于非终结符
E n t i t y Va l u e。
D T D中的引用
作为引用出现在D T D的内部或外部子集中,但是在E n t i t y Va l u e或A t t Va l u e之外。
表A - 3 5
实体类型
字符
参数
内部通用外部解析通用未解析
内容中的引用不识别包含验证有效性时包含禁止包含
属性值中的引用不识别以文字形式包含禁止禁止包含
作为属性值出现不识别禁止禁止通知不识别
实体值中的引用以文字形式包含忽略忽略禁止包含
D T D中的引用作为P E包含禁止禁止禁止禁止
4.4.1 不识别
在D T D之外,%字符没有特殊的含义;因此, D T D中的参数实体引用在c o n t e n t中不会被识
别为标记。类似,对于未解析实体的名称,除非出现在已声明的适当的属性值中,否则无法被
识别。
4.4.2 包含
当X M L处理器获取并处理实体的置换文本,用它取代实体引用本身,使之似乎成为文档的
一部分时,我们称实体被包含。置换文本可以包括字符数据和标记(除了参数实体之外),它们
必须以常规的方式被识别,但是为了转义标记分隔符而使用的实体(实体a m p、l t、g t、a p o s和
q u o t)的置换文本总是被视作数据。(字符串“AT & a m p ; T;”经过处理后成为“AT & T;”,剩余的
与号不作为实体引用分隔符。)对于字符引用,当被表示的字符取代引用被处理时,我们称字符
引用被包含。
4.4.3 验证有效性时包含
当X M L处理器发现对解析实体的引用时,为了验证文档的有效性,处理器必须包含相应的
置换文本。如果实体是外部的,且处理器不准备验证X M L文档的有效性,处理器可以,但不是
必须,包含实体的置换文本。如果不验证有效性的解析器没有包含置换文本,它必须通知应用
附录A XML 1.0规范使用835 下载
程序它能够识别但未读取实体。
 
中国航空网 www.aero.cn
航空翻译 www.aviation.cn
本文链接地址:XML高级编程下(89)