XML Schema的继承

本文介绍如何使用XMLSchema的继承机制来实现元素间的共性抽象。通过定义抽象类型Person,并让Student和Teacher类型继承该类型,使得这些元素共享name属性。

XML Schema支持继承机制,如在一个xml文档里,既有student元素也有teacher元素,如下:

xml 代码
  1. <student>  
  2.   <name>Chris</name>  
  3.   <NO>0312893</NO>  
  4.   <major>Software Engineering</major>  
  5. </student>  
  6. <teacher>  
  7.   <name>Daneil</name>  
  8.   <teach-course>Object-oriented Programming</teach-course>  
  9. </teacher>  

但是他们有一个共同的子元素name,我们如何将其抽象出来放到一个共同的父类中呢?这时我们就可以利用XML Schema的继承机制来实现。我们先定义一个类型Person:

xml 代码
  1. <complexType name="Person" abstract="true">  
  2.   <sequence>  
  3.     <element name="name" type="string"/>  
  4.   </sequence>  
  5. </complexType>  

abstract=”true”表示这是一个抽象类型,通过如下定义即可实现继承Person

xml 代码
  1. <complexType name="Student">  
  2.   <extension base="Person">  
  3.     <sequence>  
  4.       <element name="NO" type="string"/>  
  5.       <element name="major" type="string"/>  
  6.     </sequence>  
  7.   </extension>  
  8. </complexType>  
  9. <complexType name="Teacher">  
  10.   <extension base="Teacher">  
  11.     <sequence>  
  12.       <element name="teach-course" type="string'/>  
  13.     </sequence>  
  14.   </extension>  
  15. </complexType>  

这样Student和Teacher就自动具有了name元素。下面我们只需

xml 代码
  1. <element name="student" type="Student"/>  
  2. <element name="teacher" type="Teacher"/>   

将元素和他们对应的类型绑定即可,类似于面向对象语言中的实例化。注意:由于Person类型是一个抽象类型,是不可以实例化的,这点和面向对象语言也十分相似。 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值