Chinaunix首页 | 论坛 | 博客
  • 博客访问: 313406
  • 博文数量: 111
  • 博客积分: 1463
  • 博客等级: 上尉
  • 技术积分: 1005
  • 用 户 组: 普通用户
  • 注册时间: 2004-11-02 11:40
文章分类

全部博文(111)

文章存档

2011年(2)

2010年(8)

2009年(52)

2008年(5)

2007年(5)

2006年(21)

2005年(17)

2004年(1)

我的朋友

分类:

2008-11-05 12:32:28

Xml Schema的用途

1.  定义一个Xml文档中都有什么元素

2.  定义一个Xml文档中都会有什么属性

3.  定义某个节点的都有什么样的子节点,可以有多少个子节点,子节点出现的顺序

4.  定义元素或者属性的数据类型

5.  定义元素或者属性的默认值或者固定值

Xml Schema的根元素:

表示数据类型等定义来自w3

targetNamespace="" 表示文档中要定义的元素来自什么命名空间

xmlns=""表示此文档的默认命名空间是什么

elementFormDefault="qualified"> 表示要求xml文档的每一个元素都要有命名空间指定

……定义主体部分……

如何定义一个简单元素

 此处表示要定义一个元素

name=”color” 表示要定义元素的名称

type=”xs:string”  表示要定义元素的数据类型

default=”red” 表示定义元素的默认值

fixed=”red”/> 表示要定义元素的固定值,此元素只可以取“red”值

以上定义了一个简单元素,元素实例:red

如何定义一个属性

         name=”birthday” 表示要定义属性的名字

         type=”xs:date” 表示要定义属性的数据类型

         default=”2001-01-11” 表示要定义属性的默认值

         fixed=”2001-01-11” 表示要定义属性的固定值

         use=”required”/> 表示此属性是否是必须指定的,即如果不指定就不符合Schema,默认没有use=”required”属性表示属性可有可无

如何定义元素或者属性值的限制

1.最大值最小值限制

大于等于0表示最小值但是不包括指定值

  小于等于120

2.枚举限制,指只能在指定的几个值中取值

        

 

   

   

   

 

3.模式(pattern)限制 ,指字符串的格式必须满足制定的匹配模式

例子

说明

  
    
  

表示只能在小写字母中取一个值

  
    
  
 

表示必须是三个大写字母

  
    
  
 

表示必须是三个字母,可以是大写或小写的

  
    
  

表示必须是xyz中的一个

  
    
  
 

表示数字的范围是0-99999

  
    
  
 

表示必须是0或者多个小写字符组成的序列

  
    
  
 

表示必须是多个字母。

  
    
  
 

表示是male或者female中的一个

  
    
  
 

表示必须是8个字母数字字符

4.字符串长度的限制

 

   

 

长度必须是8

 

   

   

 

表示长度在5-8之间

6. 对于空白字符的限制

示例

说明

  
    
  

保留原样,表示xml处理器不会移除或者替换任何空白字符

  
    
  
 

指回车,换行,Tab都会被替换成空格处理

  
    
  
 

去掉多于一个空格,和html中处理方式相同

 

如何定义复杂类型

复杂类型是指定义元素中包含属性或者子元素的类型

1. 定义只包含子元素的复杂类型

 

   

     

     

   

 

2. 定义只包含属性的复杂类型

 

3. 定义只包含内容的复杂类型

 

   

     

   

 

4. 定义包含内容和子元素混合的复杂类型

  mixed="true">

   

     

      

     

   

 

以上定义对应的Xml

Dear Mr.John Smith.

Your order 1032

will be shipped on 2001-07-13.

5. 定义包含属性和子元素的复杂类型

 

使用指示器

Xsd中的指示器包括

1. 顺序指示器

1) All

指示子元素可以以任何顺序出现,并且每一个元素都必须出现一次

 

   

     

     

   

 

2) Choice

指示子元素中可以出现一个或者另一个

 

   

     

     

   

 

3) Sequence

指示子元素必须按照顺序出现

 

   

     

     

   

 

2. 出现次数指示器minOccursmaxOccurs

 

   

     

     

      maxOccurs="10" minOccurs="0"/>

   

 

3. 组指示器(group Indicators

用来定义相关的一组元素

 

   

   

   

 

 

    

   

 

  

用来定义一组相关的属性

 

 

 

 

   

 

Any关键字

表示可以有任意元素

 

   

     

     

     

   

 

anyAttribute关键字

 

   

     

     

   

   

 

substitutionGroup关键字

表示某一个元素和另一个替代元素定义相同

 

   

 


文中的例子都来自w3school.

阅读(2206) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~