论文部分内容阅读
摘要本文首先介绍了xml schema的一些相关概念,主要包括名称空间的声明、根元素的声明和数据类型的分类。数据类型主要分为三种,一种是原生数据类型,一种是派生数据类型,还有一种是自定义简单数据类型。又通过一个详细的例子来介绍schema的书写和对应xml文档和最终二者的引用。
关键词xml schema 名称空间 数据类型
中图分类号:TP31文献标识码:A
在xml中,规范xml文档的除了DTD之外,还存在一种规格方法,也就是xml schema。Xml schema 是用来规范和描述xml文档的第二代标准,它必须以独立的文档保存,使用与xml文档相同的语法,其使用有一些类似与xml文档中的外部DTD。
Xml schema 的数据结构类型主要分为三种,一种是原生数据类型,一种是派生数据类型,还有一种是自定义简单数据类型。原生数据类型不可以包括其他元素及其属性,只可以包含各种具体数据。一般常见的有string(字符串数据),float(标准的32位浮点数)和deimal(任意精度和位数的十进制数)。派生数据结构类型可以由原生数据结构派生出来,也可以由其他派生数据结构派生出来。最后是自定义简单数据类型。它有些类似于数据结构当中的结构体,属于典型的一个父元素包括几个子元素。
了解这些之后,就可以开始对Xml schema进行编码了。首先要了解xml根元素的声明。其中对根元素的声明必须有且只有一个,这个根元素不仅表明了该文档是Xml schema的文档,而且还指明了其名称空间以及其他一些信息。
一般Xml schema的声明格式如下:
… …
其中xmln是用来声明名称空间的关键词,这里的名称空间被映射到xsd前缀,但是一般来说,名称空间的前缀可以使用任意的标识符,而不只局限于xsd。
一般在声明一个数据类型的XML文档元素时,通常会包含若干个子元素或者属性。像这种嵌套式的具体例子如下所示:
上述例子中就声明了一个名为company的元素,其中包含有2个子元素,一个名为manager,一个名为department。
除了元素之外,还有元素属性的声明。这个非常简单,只需要在名称之后加上type类型的声明就可以了,具体格式如下:
上述例子声明了一个名为len的属性,并且规定该属性值的类型为一个十进制数。
了解了xml shcema的文档声明、元素声明和元素属性声明之后,我们通过一个实例来具体分析schema的使用。
首先我们定义一个关于大学的schema的文档,其中包括对它的声明,代码如下:
然后是声明根元素schema以及相应的名称空间,并将该名称空间映射到前缀xsd,表示这是一个schema的文档。代码显示如下:
接下来就是对元素的声明以及相关属性的定义。
首先声明一个根元素,名叫university,其中包含有4个子元素,分别是UniversityName、school、address和faculty。其中UniversityName和faculty是字符类型的元素,address是引用了别的元素。而school是属于自定义复杂数据类型的元素。具体代码显示如下:
其中和 的使用表示元素必须按照所排列的顺序出现。
声明了根元素之后,就开始对根元素的子元素进行声明,一般ref类型的元素所引用的子元素是位于它后面的文档的。以下是对学院school的声明代码:
(下转第85页)(上接第68页)
School元素中又包含了一个department元素,该元素又引用了别的元素。所以school是一个自定义复杂的数据类型。以下是schoo所引用的department的声明语句:
其中minOccurs=”1” maxOccurs=”5”是指專业名称最少有一个,最多有五个。声明完school之后,开始声明address。声明语句如下所示:
至此,程序基本完结,只需在结尾处加上 即可。该schema非常形象的规范出一个xml文档的结构,所以必须给出被规范的xml文档。Xml文档命名为university.xml,其中xml代码如下:
Zhongnan University of Economics and Law
< DepartmentName>Computer Science and Technology< /DepartmentName>
Computer Science and Technology
E-business
Wuhan
Zhengyuan Road
NO.1
至此xml文檔全部书写完毕,最后的操作是需要在XML Schema和XML文档之间建立引用关系。schema文档来规范某个xml文档时必须在该xml文档的根元素中指明用来验证该文档的schema的位置。这里又分两种情况进行讨论。第一种是当schema的根元素中包含了一个特定的targetNamespace时,可以通过schemaLocation属性以及W3C的实例名称空间来声明短语。一般格式如下:
Xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance
第二种情况就是根元素中没有targetNamespace属性,这种情况则需要在相应的XML文档的根元素中,通过noNamespaceSchemaLocation属性以及W3C的schema实例名称空间声明来制定所引用的schema文档。
只有将xml文档和schema联系起来之后,schema就可以熟练的规范xml文档了,此时的xml文档就是一个格式良好的xml文档了。
关键词xml schema 名称空间 数据类型
中图分类号:TP31文献标识码:A
在xml中,规范xml文档的除了DTD之外,还存在一种规格方法,也就是xml schema。Xml schema 是用来规范和描述xml文档的第二代标准,它必须以独立的文档保存,使用与xml文档相同的语法,其使用有一些类似与xml文档中的外部DTD。
Xml schema 的数据结构类型主要分为三种,一种是原生数据类型,一种是派生数据类型,还有一种是自定义简单数据类型。原生数据类型不可以包括其他元素及其属性,只可以包含各种具体数据。一般常见的有string(字符串数据),float(标准的32位浮点数)和deimal(任意精度和位数的十进制数)。派生数据结构类型可以由原生数据结构派生出来,也可以由其他派生数据结构派生出来。最后是自定义简单数据类型。它有些类似于数据结构当中的结构体,属于典型的一个父元素包括几个子元素。
了解这些之后,就可以开始对Xml schema进行编码了。首先要了解xml根元素的声明。其中对根元素的声明必须有且只有一个,这个根元素不仅表明了该文档是Xml schema的文档,而且还指明了其名称空间以及其他一些信息。
一般Xml schema的声明格式如下:
… …
其中xmln是用来声明名称空间的关键词,这里的名称空间被映射到xsd前缀,但是一般来说,名称空间的前缀可以使用任意的标识符,而不只局限于xsd。
一般在声明一个数据类型的XML文档元素时,通常会包含若干个子元素或者属性。像这种嵌套式的具体例子如下所示:
上述例子中就声明了一个名为company的元素,其中包含有2个子元素,一个名为manager,一个名为department。
除了元素之外,还有元素属性的声明。这个非常简单,只需要在名称之后加上type类型的声明就可以了,具体格式如下:
上述例子声明了一个名为len的属性,并且规定该属性值的类型为一个十进制数。
了解了xml shcema的文档声明、元素声明和元素属性声明之后,我们通过一个实例来具体分析schema的使用。
首先我们定义一个关于大学的schema的文档,其中包括对它的声明,代码如下:
然后是声明根元素schema以及相应的名称空间,并将该名称空间映射到前缀xsd,表示这是一个schema的文档。代码显示如下:
接下来就是对元素的声明以及相关属性的定义。
首先声明一个根元素,名叫university,其中包含有4个子元素,分别是UniversityName、school、address和faculty。其中UniversityName和faculty是字符类型的元素,address是引用了别的元素。而school是属于自定义复杂数据类型的元素。具体代码显示如下:
其中
声明了根元素之后,就开始对根元素的子元素进行声明,一般ref类型的元素所引用的子元素是位于它后面的文档的。以下是对学院school的声明代码:
School元素中又包含了一个department元素,该元素又引用了别的元素。所以school是一个自定义复杂的数据类型。以下是schoo所引用的department的声明语句:
其中minOccurs=”1” maxOccurs=”5”是指專业名称最少有一个,最多有五个。声明完school之后,开始声明address。声明语句如下所示:
至此,程序基本完结,只需在结尾处加上
< DepartmentName>Computer Science and Technology< /DepartmentName>
至此xml文檔全部书写完毕,最后的操作是需要在XML Schema和XML文档之间建立引用关系。schema文档来规范某个xml文档时必须在该xml文档的根元素中指明用来验证该文档的schema的位置。这里又分两种情况进行讨论。第一种是当schema的根元素中包含了一个特定的targetNamespace时,可以通过schemaLocation属性以及W3C的实例名称空间来声明短语。一般格式如下:
Xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance
第二种情况就是根元素中没有targetNamespace属性,这种情况则需要在相应的XML文档的根元素中,通过noNamespaceSchemaLocation属性以及W3C的schema实例名称空间声明来制定所引用的schema文档。
只有将xml文档和schema联系起来之后,schema就可以熟练的规范xml文档了,此时的xml文档就是一个格式良好的xml文档了。