• 热门标签

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

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

出于互操作性考虑,在一个元素类型的枚举属性类型中,同一N m t o k e n至多出现一次。
3.3.2 属性缺省值
属性声明指明了属性是否必须出现,以及当文档中不包含已声明的属性时, X M L处理器应
该如何应对。
表A - 2 6
属性缺省值
[ 6 0 ] D e f a u l t D e c l : : = '#REQUIRED' |?#IMPLIED'
| (('#FIXED' S)?
A t t Va l u e ) [ V C:必需的属性]
[ V C:属性缺省值的合法性]
[ W F C:属性值中不含< ]
[ V C:固定的属性缺省值]
在属性声明中, # R E Q U I R E D意味着必须提供属性, # I M P L I E D表示属性可有可无。如果声
明不是# R E Q U I R E D或# I M P L I E D,则A t t Va l u e包含声明的缺省值; # F I X E D关键字说明属性必须
有缺省值。如果声明了缺省值,当X M L处理遇到被省略的属性时,它认为文档中存在该属性,
且具有所声明的缺省值。
828使用XML 高级编程
下载
有效性约束:必需的属性
如果缺省值声明使用了关键字# R E Q U I R E D,元素必须说明该类型的属性。
有效性约束:属性缺省值的合法性
所声明的缺省值必须满足声明的类型的词汇约束。
有效性约束:固定的属性缺省值
如果属性声明使用了关键字# F I X E D,且指定了缺省值,则该属性的实例必须与缺省值匹
配。
下面是属性列表声明的例子:
3.3.3 属性值的规格化
在X M L处理器将属性值传递给应用程序或者检查其有效性之前,必须对它执行以下规格化
操作:
• 对于字符引用,将被引用的字符插入属性值中。
• 对于实体引用,以递归的方式处理实体的置换文本。
• 对于空白字符( # x 2 0、# x D、# x A、# x 9),将# x 2 0添加到规格化的值中,对于外部解析实
体或内部解析实体的文字实体值中的“ # x D # x A”序列需要特别处理,仅仅添加一个# x 2 0。
• 对于其他字符,直接将它们添加到规格化的值中。
如果所声明的值不是C D ATA,X M L处理器必须对规格化的值做进一步处理,首先删除前后
的空格字符(# x 2 0),然后用一个空格字符( # x 2 0)替换若干连续的空格字符( # x 2 0)。
不具备有效性验证功能的解析器会将所有未声明的属性作为已声明为C D ATA的属性处理。
3.4 条件部分
只有文档类型声明外部子集中才能有条件部分,条件部分是否包含在D T D的逻辑结构中取
决于用于控制它的关键字的值。
表A - 2 7
条件部分
[ 6 1 ] c o n d i t i o n a l S e c t : : = includeSect | ignoreSect
[ 6 2 ] i n c l u d e S e c t : : = '<![' S? 'INCLUDE' S? '[' extSubsetDecl
' ] ] > '
[ 6 3 ] i g n o r e S e c t : : = '<![' S? 'IGNORE' S? '['
i g n o r e S e c t C o n t e n t s * ' ] ] > '
[ 6 4 ] i g n o r e S e c t C o n t e n t s : : = Ignore ('<![' ignoreSectContents ']]>'
I g n o r e ) *
[ 6 5 ] I g n o r e : : = Char*- (Char*('<![' | ']]>') Char*)
附录A XML 1.0规范使用829 下载
与内部和外部D T D子集类似,条件部分也可以包含一个或多个完整的声明、注释、处理指
令或嵌套的条件部分,且其间可以夹杂空白。
如果条件部分的关键字为I N C L U D E,则条件部分的内容将成为D T D的一部分。如果条件部
分的关键字为I G N O R E,则条件部分的内容从逻辑上不包含在D T D中。为了实现可靠的解析,
即使对于被忽略的条件部分,也必须读取它的内容,以便发现嵌套的条件部分,并确保正确检
测出(被忽略的)条件部分最外层的结束标记。如果关键字为I N C L U D E的条件部分包含在关键
字为I G N O R E的条件部分中,外层和内层的条件部分都将被忽略。
如果条件部分的关键字是参数实体引用,处理器首先必须用所引用的内容替换参数实体,
然后再决定包含或忽略条件部分。
下面是一个条件部分的例子:
4. 物理结构
X M L文档可以包含一个或多个存储单元。它们被称为实体;实体都有内容,并且都通过实
体名称进行标识(除了文档实体和外部D T D子集之外)。每个X M L文档都有一个称为文档实体的
实体,它作为X M L处理器的起始点,可以包含整个文档。
实体可以是解析的或未解析的。解析实体( parsed entity)的内容称为置换文本;这些文本
被看作是文档的一部分。
未解析实体是一种资源,它的内容不一定是文本,如果内容是文本,也可能不是X M L。每
个未解析实体都有相关的表示法,表示法是以名称标识的。X M L处理器需要为应用程序提供实
体和表示法的标识符,除此之外, X M L对未解析实体的内容没有任何限制。
解析实体是以实体引用的方式通过名称调用的;未解析实体是通过在E N T I T Y或E N T I T I E S
属性值中指定名称实现引用的。
通用实体是指在文档内容中使用的实体。在本规范中,在不引起混淆的情况下,通用实体
有时用未修饰的术语“实体”来表示。参数实体是指在D T D中使用的解析实体。这两种类型的
实体采用不同的引用形式,并且应用于不同的环境。另外,它们使用不同的命名空间;具有相
同名称的参数实体和通用实体实际上是两个截然不同的实体。
4.1 字符引用和实体引用
字符引用是引用ISO/IEC 10646字符集中的特殊字符,例如无法直接从输入设备输入的字符。
表A - 2 8
字符引用
[ 6 6 ] C h a r R e f : : = '&#' [0-9]+ ';'
| '&#x' [0-9a-fA-F]+ ';' [ W F C:合法字符]
830使用XML 高级编程
下载
格式正规约束:合法字符
字符引用中所引用的字符必须与C h a r产生式匹配。
如果字符引用以“ & # x”开头,则它后面直至终止符,之间的数字和字母构成了I S O / I E C
1 0 6 4 6中字符代码的十六进制表示。如果它以“ & #”开头,它后面直至终止符,之间的数字构成
 
中国航空网 www.aero.cn
航空翻译 www.aviation.cn
本文链接地址:XML高级编程下(87)