• 热门标签

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

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

下载
这时,我想以不同的元素内容重用属性组。我已经能够在元素声明里通过明确地描述内容
模型做到这些。注意,我的内容模型包含N u t和B o l t类型的元素。我将必须在模式中别的地方声
明这些类型。
(8) 通配符
X M L模式提供a n y元素允许我们引进一个通配符到一个模式的任何特殊点。模式提供了下面
四种中任意一种写模式方法开始工作:
• 任何格式正规的X M L元素结构
• 任何格式正规的元素结构,只要它在任何一个通配符不出现的命名空间
• 任何格式正规的元素结构,它是从一个明确的命名空间提供出来的
• 任何格式正规的元素结构,它是从一个当前的命名空间提供出来的
通配符也可以用在与属性的关联,在那里我们能使用a n y A t t r i b u t e元素。这是四种情况的每
一个例子:
程序清单7 - 2 6
注意, o t h e r和t a rg e t N a m e s p a c e关键字的使用方法。现在有一个在与元素声明里的属性建立
关联里使用通配符的例子:
程序清单7 - 2 7
这里我们声明了一个元素,它有一个单一子元素, < s o m e N u m >,并且可以有任意的在W 3 C
模式为XML 模式声明的属性。
2. 派生类型定义
当在类型上使用源属性时,我们非常有效地从现有的类型派生新的。XML 模式提供一些正
第7章命名空间和模式使用217 下载
式的规则用来类型派生,我们现在就要检查这些规则。特别是我们能扩展一个类型或限制它。
d e r i v e d B y属性的值说明了使用了哪种方法。
派生
当一个新的类型添加附加的内容到它原来的类型时,它扩展了另一个类型。这种情况下,
所有在源类型里声明的内容将会出现在派生的类型里。例如,我们通过在现有内容添加一个敬
语元素来扩展了一个P e r s o n N a m e类型声明:
程序清单7 - 2 8
但如果我们想因为某种原因限制一个类型而派生一个新类型时,我们能给d e r i v e d B y属性一
个限制值,并且添加< r e s t r i c t i o n s >元素:
程序清单7 - 2 9
在这里我们限制了类型,于是< M I >元素不再出现。当派生类型时,要确认关于元素和属性
的限制比起那些关于相同源类型的声明限制更加有限制性。
类型可以控制从它们自己派生,以及通过使用三个属性: a b s t r a c t , e x a c t和f i n a l控制它们在
实例文档里出现。如果a b s t r a c t的值是t r u e,没有声明的类型实例可以出现在实例文档里。正
如希望的其暗含的缺省值是f a l s e。如果e x a c t的值是t r u e,在它那里没有派生的类型出现在实
例文档里。只有被声明过的类型可被使用。如果f i n a l的值被赋成t r u e,今后不再允许类型派
生。
3. 撰写
我们能将模式和命名空间联合在一起允许使用者从多个模式建立文档实例。模式也允许设
计者使用其他的模式建立他们自己的模式文档。这在术语上称为撰写( C o m p o s i t i o n)。
(1) 引入
你能引入另一个模式的一部分用在提供了的其他模式的命名空间,< i m p o r t >元素涉及了这些。
这个元素拥有命名空间属性,它的值是你想要使用的模式的U R I。你也可以提供一个模式
L o c a t i o n属性去指向想要的模式文件。一旦你引入了一个命名空间,就能够在你的模式里使用一
些从其他模式来得结构:
218使用XML 高级编程
下载
程序清单7 - 3 0
当一个结构被引入到一个模式里,它保留着外部的资源。我们正在有效地组建一个新的模
式,通过连入部分另一个模式而不是将它们整个包含进新的模式。当一个验证解析器按照模式
验证一个文档时,它必须重新得到其他模式去验证与外部资源不一致的文档里的组成部分。
(2) 包含
< i n c l u d e >元素说明了包含。它在一个模式里出现在< i m p o r t >元素之后,< e x p o r t >元素之前。
< i n c l u d e >元素和需要的属性模式L o c a t i o n一起是个空的元素,它的值是一个指向包含模式的U R I。
当这个元素出现在模式里时,这个模式被理解成包含它声明过的类型,同时所有包含的模式里
声明的类型提供了几个遇到的标准: U R I必须融入另一个模式,而这样设计的模式必须有一个
t a rg e t命名空间属性并与包含模式的t a rg e t命名空间属性值一致。
4. 注释模式
没有计算定义和代码是不需要提供附加的注释或处理信息的机制来完成的。模式为这个提
供了< a n n o t a t i o n >元素。这个元素可能包含由字符数据而不是人类的假想构成的< i n f o >元素,或
者为模式做同样事情的< a p p i n f o >元素。无论哪个元素可能有一个i n f o S o u r c e属性,它提供一个有
更多信息的U R I引用。
程序清单7 - 3 1
7.6.3 数据类型
真实世界依赖于数字、字符串和集合概念,于是用现代程序语言写成的程序支持为了定义
新类型而内嵌类型和过程的详细体系。而且对于XML 模式附加的数据类型对程序员为他们应用
程序里的数据而使用X M L将是一笔很大的财产。这种对数据类型的支持包含检查文档里数值的
有效性,以及在处理X M L文档时帮助从文本到原始类型的合适的转换。于是如果我们打算用
X M L文档作为集成程序和系统的基础,我们需要捕捉标记的信息的数据类型。
这就是XML 模式规范的第二部分—XML 模式:D a t a t y p e瞄准要做的。它不仅提供了捕捉
基础数据类型的方法,同时给了我们一个记录加在属于我们问题里的数据上的方法。它将让我
们记录数值范围,设置和列出顺序。它也将让我们为数据允许的字符串表示法指定掩码。
第7章命名空间和模式使用219 下载
模式数据类型被说成拥有一套独特的值, 称做它们的数值空间。这是类型能够具有数值的抽
象集合。例如,整数集是整数类型的数值空间。限制这个空间里的数值的属性和操作描述了这
个空间的特性。当给用户去表现一个数据类型时,需要一个词汇表示—这个类型的字面字符
 
中国航空网 www.aero.cn
航空翻译 www.aviation.cn
本文链接地址:XML高级编程上(79)