Chinaunix首页 | 论坛 | 博客
  • 博客访问: 701515
  • 博文数量: 111
  • 博客积分: 2109
  • 博客等级: 上尉
  • 技术积分: 1124
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-25 12:11
个人简介

通信码农,Emacs爱好者,业余IOS程序员,更业余的PM

文章分类

全部博文(111)

文章存档

2018年(2)

2016年(2)

2015年(2)

2014年(13)

2013年(21)

2012年(71)

分类: LINUX

2012-09-17 19:35:49

      新feature一波三折,提出使用xls跟xml之间的关系,可以做出xls到xlm的映射,但是今天小看了一下。发现doc上说的很清楚,不支持控件以及宏。不管了,其实觉得用xml可以更加简洁,因为毕竟xml是树状的结构,存储的更加合理,但是有依赖关系的数据还是必须都记录。xml跟xls之间的导入与到处需要编写的XSD文件也很重要。
      XSD相关:
      
       element元素

例子:

这是一些 XML 元素:

Smith 28 1980-03-27

这是相应的简易元素定义:

简易元素的默认值和固定值

简易元素可拥有指定的默认值或固定值。

当没有其他的值被规定时,默认值就会自动分配给元素。

在下面的例子中,缺省值是 "red":

固定值同样会自动分配给元素,并且您无法规定另外一个值。

在下面的例子中,固定值是 "red":

customer.xsd ----------------
1:
2:
 3:
 4:
5:
6:
7:
 8:

 9:

10:

11:


说明: 实例文档customer.xml中,元素含有两个子元素,在Schema中凡是有两个以上的子元素,就认为是复杂类型的,所以我们在Schema文档中采用ComplexType来定义该元素。表示有多个XML子元素。 sequence表示子元素依次出现的顺序。 如果有多层子元素怎么办呢,同样的道理,有几层写几层,一直往下嵌就OK了,这里我要说的是另一种方法,结构看上去会清晰一些。
address.xml ---------------

 Teiki

 
 Zhejiang
 Hangzhou
Xilu Road, No.121, 7F
 

 


下面就是采用ref元素来编写的这个Schema文档:
address2.xsd ----------------------
1:
2:
3:
4:
5:
6:
7:
8:
9:

10:

11:

12:
13:
14:
15:
16:
17:
18:
19:

20:

21:

22:
23:


说明: 如果按正常的写法,应该把13-21行的内容替换到每8行去,但这里使用ref元素可以直接将其指向另一个模块,使文档更加具有可读性。 如果元素中包含属性怎么办呢?一样简单,只要在定义完子元素的后面再着定义属性就行了。定义属性用“attribute”,还是举个例子吧
 customer2.
xml ---------------

Teiki
No.237, Road Waitan, Shanghai



这个例子和上面的一个例子差不多,只是在元素customer中设了一个属性id。
customer2.xsd ------------------
1:
2:
3:
4:
5:
6:
7:
8:
9:

10:
11:
12:

13:

14:
15:


说明: 需要注意的一点是,属性和元素不是一家的,所以要把它放在sequence外面写,但它们都在customer的孩子,所以要写在complexType的里面。 下面再看一个例子:
 order4-1.xsd ---------------------- 、
1:
2:
3:
4:
5:
6:
7:
8:

9:

10:

11:
12:
13:
14:
15:
16:
17:
18:

19:
20:

21:

22:

23:
24:
25:
26:
27:
28:
29:

30:

31:
32:
33:
34:
35:
36:

37:

38:
39:


上面的例子中,maxOccu代表:相同元素最多出现的次数,与些相反的是minOccu代表:出现的最少次数。默认情况下两个都为“1”,如果把 minOccu设为“0”,表示该元素可有可无。choice代表:可选的元素,也就是在这里面写的元素只能选其中之一,不能全写。 simpleType代表自定义数据类型,也就是name里的并不是真正的数据类型,而是根据自己的意愿定制的。restriction代表对某一数据类 型做约束,也就是只能取其中范围之内符合要求的,比如第25-29行中,里面又有个元素enumeration代表枚举,也就是只能在枚举的那几个中选一 个,而下在的36-36行,里面又有一对元素minInclusive和maxInclusive代表类型的取值范围,也就是只能取大于等于 minInclusive并且小于等于maxInclusive的数。

把这个Schema用在XML中是这样的:


7-5005-6450-3
3

xyb
3


7-5005-6450-3
13




 说明: 红色的部分是导入Schema的命令,绿色的是Schema文件的路径,如果用XMLSPY写时,会自动加上。 对属性的设置,基本上和元素的差不多。比如:














这里我们讲id属性类型作为一种自定义数据类型idType。它的格式就是上面用到的也就是类似于“7-5005-6450-3”样的。 而且,用attribute元素的use属性来定义是否是必须的属性。 required是必须值,optional是可选值,prohibited是无属性值。default属性是默认值。

阅读(1390) | 评论(0) | 转发(0) |
0

上一篇:my .emacs

下一篇:从XML文件导入数据到EXCEL

给主人留下些什么吧!~~