曝光台 注意防骗
网曝天猫店富美金盛家居专营店坑蒙拐骗欺诈消费者
个元素能够与内容模型中一个元素类型的多次出现匹配,系统会认为出现错误。要了解更详细
的信息,参见“E. 确定的内容模型”。
有效性约束:正确的组/ P E嵌套
附录A XML 1.0规范使用825 下载
参数实体的置换文本必须与用括号括起来的组正确嵌套。换言之,如果c h o i c e、s e q或M i x e d
结构中的开始或结束括号包含在参数实体的置换文本中,则这两个括号必须同时包含在该置换
文本中。出于互操作性考虑,如果c h o i c e、s e q或M i x e d结构中出现参数实体引用,它的置换文本
不应该为空,而且置换文本的第一个和最后一个非空字符都不应该是连接符( |或,)。
下面是元素内容模型的例子:
3.2.2 混合型内容
当元素中可以包含字符数据,且其间能够随意穿插子元素时,称元素类型具有混合型内容。
在这种情况下,子元素的类型要受到约束,但是它们的顺序或出现的次数不受限制。
表A - 2 2
混合型内容声明
[ 5 1 ] M i x e d : : = '(' S? '#PCDATA' (S? '|' S? Name)*S? ')*'
| '(' S? '#PCDATA' S? ')' [ V C:正确的组/ P E嵌套]
[ V C:无重复类型]
其中,N a m e代表元素中将出现的子元素的类型。
有效性约束:无重复类型
在一个混合型内容声明中,同一名称至多出现一次。
下面是混合型内容声明的例子:
3.3 属性列表声明
属性用于将名称-值对与元素相关联。属性说明只能出现在起始标记和空元素标记中;“ 3 . 1
起始标记、结束标记和空元素标记”一节介绍了用于识别它们的产生式。属性列表声明可以有
以下用途:
• 定义适用于特定元素类型的属性集合。
• 为属性建立类型约束。
• 提供属性的缺省值。
属性列表声明指定了与特定元素类型相关的每个属性的名称、数据类型和缺省值(如果有
缺省值的话)。
表A - 2 3
属性列表声明
[ 5 2 ] A t t l i s t D e c l : : = ' < ! ATTLIST' S Name AttDef*S? '>'
[ 5 3 ] A t t D e f : : = S Name S AttType S DefaultDecl
A t t l i s t D e c l定义中的N a m e指定了元素的类型。根据用户的选择,如果属性中声明的元素类型
826使用XML 高级编程
下载
未被声明,X M L处理器可以发出警告,但这并不是错误。A t t D e f定义中的N a m e代表属性的名称。
如果特定的元素类型有多个A t t l i s t D e c l时,它们的内容将被合并。对于特定元素类型的同一
属性,如果有多个定义, X M L处理器将采用第一个声明,而忽略后续的声明。出于互操作性考
虑,D T D的作者可以选择为特定的元素类型至多提供一个属性列表声明,为特定的属性名称至
多提供一个属性定义,而且每个属性列表声明中至少有一个属性定义。出于互操作性考虑,当
特定的元素类型有多个属性列表声明,或者特定的属性有多个属性定义时, X M L处理器可以根
据用户的选择发出警告,但这并不是错误。
3.3.1 属性类型
X M L定义了以下三种属性类型:字符串类型、记号化类型和枚举类型。字符串类型的值可以
是任何文字串;记号化类型受到许多不同的词汇和语义约束,下面的表格显示了这些类型的定义:
表A - 2 4
属性类型
[ 5 4 ] A t t Ty p e : : = S t r i n g Type | T o k e n i z e d Type
| EnumeratedTy p e
[ 5 5 ] S t r i n g Ty p e : : = ' C D ATA '
[ 5 6 ] To k e n i z e d Ty p e : : = ' I D ' [ V C:ID ]
[ V C:每个元素类型
一个ID ]
[ V C:I D属性缺省值]
| 'IDREF' [ V C:IDREF ]
| 'IDREFS' [ V C:IDREF ]
| 'ENTITY' [ V C:实体名称]
| 'ENTITIES' [ V C:实体名称]
| 'NMTO K E N ' [ V C:名称记号]
| 'NMT O K E N S ' [ V C:名称记号]
有效性约束:I D
I D类型的值必须与N a m e产生式匹配。在一个X M L文档中,作为该类型值的名称至多出现一
次,即:I D值必须是相应元素的唯一标识符。
有效性约束:每个元素类型一个I D
任何元素类型至多有一个I D属性。
有效性约束:I D属性缺省值
I D属性必须有声明为# I M P L I E D或# R E Q U I R E D的缺省值。
有效性约束:I D R E F
I D R E F类型的值必须与N a m e产生式匹配,I D R E F S类型的值必须与N a m e s产生式匹配;每个
N a m e必须与X M L文档中某个元素的I D属性值匹配;即: I D R E F的值必须与某个I D属性的值匹
配。
有效性约束:实体名称
E N T I T Y类型的值必须与N a m e产生式匹配, E N T I T I E S类型的值必须与N a m e s产生式匹配;
每个N a m e都必须与D T D中声明的未解析实体的名称匹配。
附录A XML 1.0规范使用827 下载
有效性约束:名称记号
N M TO K E N类型的值必须与N m t o k e n产生式匹配, N M TO K E N S类型的值必须与N m t o k e n s匹
配。
枚举属性的值应该从声明中的值列表选择。X M L定义了两种枚举类型:
表A - 2 5
枚举属性类型
[ 5 7 ] E n u m e r a t e d Ty p e : : = N o t a t i o n Type | Enumeration
[ 5 8 ] N o t a t i o n Ty p e : : = ' N O TATION' S '(' S? [ V C:表示法属性]
Name (S? '|' S? Name)*
S? ')'
[ 5 9 ] E n u m e r a t i o n : : = '(' S? Nmtoken (S? '|' [ V C:枚举]
S? Nmtoken)*S? ')'
N O TAT I O N属性用于标识一种表示法,它是在D T D中声明的,与系统和/或公共标识符相关
联,它用于解释与属性相关的元素。
有效性约束:表示法属性
该类型的值必须与声明中的某个表示法名称匹配;属性列表声明中的表示法名称必须是已
经声明的。
有效性约束:每个元素类型一种表示法。
没有一个元素类型可以有一个以上指定的N O TA I O N属性。
有效性约束:枚举
该类型的值必须与声明中的某个N m t o k e n记号匹配。
中国航空网 www.aero.cn
航空翻译 www.aviation.cn
本文链接地址:
XML高级编程下(86)