XML第八讲:XML中SimpleType、complexType深入分析

在上一讲XML内容中,我们讲解了Schema的基本使用方法,这一讲我们继续上一讲内容来讲解一下XML中Schema的其他用法

1. 在上一讲程序中有sequence的用法,讲解一下




	
	

	
		
			
			
		
	

	


  

hello
world


[表示]:上面的XML文档中cat和dog这组元素有且只能出现一次。注意sequence中的元素必须是作为整体来看的,例如上面的dog和cat是一个整体的数据。

[说明]:sequence类型表示下面的元素是按顺序来的,顺序不能颠倒。其中有两个属性:

   minOccurs = "1"  表示队列中的元素最小出现次数为1
    maxOccurs = "1"  表示队列中的元素最大出现次数为1  
[注意]:sequence用法表示限制出现次数,如果不写,默认是1,即最小最大都是1。如果最大次数不限制,就用 unbounded 属性值。[不绑定]

2. group元素

1) 作用:把一组元素声明组合在一起,以便它们能够一起被复合类型应用
2) 属性:name/ref

3) 实例:

 

下面我们来写一个关于group的例子:

1) 新建一个person.xsd



	
	
		
		
		
			
			
			
		
	
	
	
	
		
			
			
		
	
	
	


2) 新建person.xml文件


  

tom
2013-03-19
10


3. attribute元素

属性是没法单独出现的,它是归属于元素的。

1)作用:声明一个属性

2)属性:name/type/ref/use

3)示例:

       <xs:attribute name="mybaseattribute" type="xs:string" use="required"/>     

       

注意后面有一个use,它相当于DTD中属性的特点一样,是用来表示是否为可选的,或者必须的required。它是用use属性去表达的。

use的值有三个:

optional: 可选的

prohibited:禁止使用的

required:必须使用的

4)现在我们来练习一下attribute的用法

新建test3.xsd



		
		
		
			
			
			
				
					
					
				
					
				
				
				
			
			
			
		
		
		



新建test3.xml







 

[说明]:以上就是使用attribute的用法。

4. attributeGroup元素

   这个是属性组的用法,与group元素类似

1)作用:把一组属性声明组合在一起,以便可以被复合类型应用。由于属性是依附于元素的,所以当属性分完组之后,要么这个属性全都用了,要么他们一个都不用,是作为一个组去看待的。

2)属性:name/ref

3)示例:

4) 下面我们来练习一下它的用法

新建test4.xsd



	
	
			
			
			
			
			
			

	
	
				
				
		

	
	



新建test 4.xml


 

[说明]:如果test4.xml中换成以下这种写法的话,则就会报错!






[报错]:

原因是因为test4.xsd中的compleType类型没有定义子元素,所以系统默认为空,而上面的test4.xml中是存在空格的,所以它认为空格也是属于有内容,故报错,修改的方式不运行中间存在内容,如下所示




[说明]:像这种情况,为了能够更好的表示以免发生类似错误,建议写成第一种形式,即直接 "</>" 的形式,是最不会出错的。

5. simpleType元素

对于很多XML的初学者来说,simpleType与complexType很容易搞混淆的,这两种类型单纯从字面意义上来说是很难区分开的。下面我们就来学习一下这个元素,并且后续会对他们之间的不同进行比较。

1)作用:定义一个简单类型,它决定了元素和属性值的约束和相关信息

2)属性:name

3)内容:应用已经存在的简单类型,三种方式:

restrict → 限定一个范围
list → 从列表中选择
union → 包含一个值的结合

[比如说我们想要从一个枚举中选择几个特定的元素,现在已经存在一个integer类型,但是它不符合我们的要求,我们必须从那些类型中指定出我们需要的几个元素。所以这种情况下我们需要使用SimpleType,基于原有的简单类型的基础上,施加额外的约束。]

1.子元素为: ----->定义一个约束条件

2. 下面我们来练习一下它的使用方法:

新建test5.xsd



	
		

			
				
				

			
			
		
		
		
		
		
		
		
		
		



新建test5.xml



89
 

[ 说明]:

minInclusive : 大于等于

maxInclusive : 小于等于

minExclusive : 大于

maxExclusive : 小于

以上是使用SimpleType的一种形式,当然还可以有另外的几种用法,如下定义成枚举类型



	
		

			
			
			
			
			
			
			
			
			
			
			
		
		
		
		
	
		

[ 说明]:





未完待续,持续更新中......






































你可能感兴趣的:(XML)