一起学习
XML Schema和名域
Schema是一些规则的集合(也称为语法或者语汇),其中包括了类型定义(简单和复杂类型)以及元素和属性声明。由于XML中可能存在不同的语汇来描述不同的元素和属性,因此需要使用名域(namespace)和前缀来避免元素和属性声明之间的模糊性。当你使用来自多个名域的schema时,分清元素和属性名称是最基础性的工作。
一个名域通常有一串字符串来相互区别,如 "urn:", "", ""以及 "uuid:1234567890"等。
XML Schema的序言
XML schema的开头时是一些导言,之后才是正式的声明。在schema 元素的导言中可能包含三个可选的属性。
例如,下面的语法使用的schema元素引用了三个最常使用的名域:
前两个属性用XML名域来标识W3C中的两个XML schema规范。第一个 xmlns属性包含了基本的XML schema元素,比如element, attribute, complexType, group, simpleType等。第二个xmlns属性定义了标准的XML schema属性类型例如string, float, integer, 等。
缺省名域
对于任何一个XML Schema定义文档(XSD)都有一个最顶层的schema (XSD)元素。而且该schema (XSD)元素定义必须包含下面的名域:
作为名域的标识符(在声明中作为元素或属性的前缀),你也可以不使用xsd或xsi。
我们分别来观察XSD和XML实例文档中相关的名域。比如前面介绍student.xsd的序言是这样的:
这里的targetNamespace属性表示了该shema所对应的名域的URI。也就是说在引用该Schema的其它文档中要声明名域,其URI应该是targetNamespace的属性值。例如在这里因为要用到student.xsd自己定义的扩展数据类型,所以也声明的名域xmlns:sl="/namespaces/StudentList"。
我们再来看由该schema规定的XML文档的开头将是什么样子:
其中缺省名域声明xmlns="/namespaces/StudentList"就是和刚刚声明的XML Schema的名域相结合来规定该XML文档。xmlns:xsi="-instance" 是任何XML实例文档固有的名域,当然按照前面所说的名域名称xsi是可以自己规定的。而xsi:schemaLocation="/namespaces/StudentList student.xsd"则规定了该名域所对象的schema的位置,即在相同路径的student.xsd文件。
下载本文示例代码
XML Schema全接触(XML Schema和名域 )XML Schema全接触(XML Schema和名域 )XML Schema全接触(XML Schema和名域 )XML Schema全接触(XML Schema和名域 )XML Schema全接触(XML Schema和名域 )XML Schema全接触(XML Schema和名域 )XML Schema全接触(XML Schema和名域 )XML Schema全接触(XML Schema和名域 )XML Schema全接触(XML Schema和名域 )XML Schema全接触(XML Schema和名域 )XML Schema全接触(XML Schema和名域 )XML Schema全接触(XML Schema和名域 )
阅读(132) | 评论(0) | 转发(0) |