• 热门标签

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

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

选的,此值为0;当最少出现一次时,此值为1(缺省值为1)
m a x O c c u r s 引用元素类型在元素里能出现的最大次数,当出现次数最多为1次时,此
值为1;当出现次数不限制时,此值为*(缺省值为1)
< a t t r i b u t e >元素也能有三个属性(参见表7 - 8)。
表7 - 8
属性描述
d e f a u l t 属性的缺省值,不考虑它所重载的< A t t r i b u t e >元素里提供的任何缺省值
t y p e 与在模式里定义的< AttributeTy p e >元素的n a m e属性值相一致
r e q u i r e d 指明属性是否必须出现在元素里,如果需要取值y e s。如果在< AttributeTy p e >
元素里指明了就不需要了
让我们看一些简单的元素声明和它们的D T D等价物。首先我们有一个父元素叫做< F e x >,它
包含一个子元素叫做< Te x >。
224使用XML 高级编程
下载
这里,一些为< Te x >声明的< E l e m e n t Ty p e >将在模式的别的地方被包含。在D T D里,我们刚
刚看到的声明将是:
接下来,有一个< P e r s o n >元素,它有子元素< F i r s t N a m e >、< M I >和< L a s t N a m e > :
使用X M L - D R,这将看起来像下面那样:
程序清单7 - 3 4
内容模型通过使用o r d e r属性和g r o u p元素组成。因此,如果想要变得更复杂,我们需要看一
下< g r o u p >元素的属性以及使用已经看过的< e l e m e n t >元素的属性(参见表7 - 9)。
表7 - 9
< g r o u p >属性含义
m a x O c c u r s g r o u p可能出现的最大次数。可取值0或*(很多)
m i n O c c u r s g r o u p可能出现的最小次数。可取值0(可选)或1(至少出现1次)包含
o r d e r 的元素和组的顺序。可能是o n e(从g r o u p里选出一个元素)、s e q(序列
里的每个元素)或m a n y(g r o u p里可能或不可能,按一定顺序出现的任意
元素)
于是,如果我们想根据X M L - D R声明下面的内容模型:
它将像下面那样:
程序清单7 - 3 5
为了声明属性,我们需要< A t t r i b u t e Ty p e >元素,它有一个必选的属性和四个可选的属性。通
过包含一个< a t t r i b u t e > 元素将属性与元素结合, < a t t r i b u t e >元素作为用来声明元素的
< E l e m e n t Ty p e >的子元素,就像处理元素一样。< a t t r i b u t e >元素的t y p e属性参阅了声明属性的
< A t t r i b u t e Ty p e >(参见表7 - 1 0)。
第7章命名空间和模式使用225 下载
表7 - 1 0
A t t r i b u t e Ty p e属性含义
n a m e 必须的;属性名称
d e f a u l t 属性缺省值;必须与D t : t y p e一致
d t : t y p e 属性定义的数据类型
d t : v a l u e s 当d t : t y p e是枚举时一系列可能的值
r e q u i r e d 指明属性是否出现在元素的所有的实例中; Tr u e或F a l s e
在Windows 2000之前的I E 5解析器版本, d t : t y p e可以具有XML 1.0原始类型: e n t i t y、
e n t i t i e s、e n u m e r a t i o n、i d、i d r e f、i d r e f s、n m t o k e n、n m t o k e n s、n o t a t i o n和s t r i n g。下面讨论
的数据类型的整个范围均被搭载在Windows 2000上的解析器支持。
这里是我们怎样去添加一个必须的a g e属性到事先在D T D里声明的< P e r s o n >元素里:
在X M L - D R里这些变成了:
程序清单7 - 3 6
< a t t r i b u t e >元素也可用来声明一个缺省值或指明这个属性是否为必须。如果相关联的
< A t t r i b u t e Ty p e >提供了r e q u i r e d属性,我们不需要在< a t t r i b u t e >元素里重复那个属性。
另一个有趣的变化是一个< A t t r i b u t e Ty p e >元素可以出现在< E l e m e n t Ty p e >实例范围里。那种
情况下,声明的属性类型只是在< E l e m e n t Ty p e >声明范围里有效,并且在模式的别的地方不能引
用。这里是用a g e声明的同一个< P e r s o n >和a g e,a g e被定义成单独用于< P e r s o n >:
程序清单7 - 3 7
(3) 组
我们看到了< g r o u p >元素用于< E l e m e n t Ty p e >元素声明。它的使用非常简单,但这个元素的
属性所允许的数值不同于我们在XML 模式看到的那些。首先,它最重要的功能不灵活。a l l按顺
序枚举了类型,但也不被支持。< G r o u p >具有m a x O c c u r s、M i n O c c u r s和O r d e r属性,这些我们在
前面部分看过了。
226使用XML 高级编程
下载
(4) 注释
X M L - D R为内嵌文档提供了描述性元素。
当然,X M L类型注释<!--Some comment here-->同样工作得很好。但是我们能用描述性元素
捕捉与模式相关的注释,比如使用方法注释,它可用于一种特殊工具的使用说明。X M L - D R自
己不区分两种格式的注释,而只提供二者任意一种。
(5) 数据类型
X M L - D R使我们能在IE 5.0里使用数据类型技术预览来提供强大的元素和属性录入功能。除
了d t : t y p e属性之外这些使用了< A t t r i b u t e Ty p e >元素。这个元素—< d a t a t y p e >拥有单一属性
d t : t y p e,以指明父元素的类型。
IE 5.0里强大的录入支持不仅提供XML 1.0原始类型,还支持大量对P C应用普遍的派生类型。
表7 - 11是支持的附加的类型:
表7 - 11
数据类型含义
b i n . b a s e 6 4 基于6 4二进制编码的M I M E类型
b i n . h e x 由1 6进制表示的字节
b o o l e a n 0(f a l s e)或1 ( t r u e )
c h a r 单字符
d a t e ISO 8601日期(不含时刻)
d a t e t i m e ISO 8601日期时刻,带有可选的时间和分数秒,可达到十亿分之一秒的分辨率
 
中国航空网 www.aero.cn
航空翻译 www.aviation.cn
本文链接地址:XML高级编程上(82)