`
fangjh
  • 浏览: 8509 次
  • 性别: Icon_minigender_1
  • 来自: 天津
文章分类
社区版块
存档分类
最新评论

XML Schema的继承

    博客分类:
  • XML
XML 
阅读更多

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类型是一个抽象类型,是不可以实例化的,这点和面向对象语言也十分相似。 

分享到:
评论

相关推荐

    go-xml:XML的实用程序和代码生成库

    它从规范中获得了一些自由,并且需要做一些工作才能用作验证器,但是它以相对理智的方式处理类型继承和XML名称空间。 xsdgen软件包提供了一个可定制的代码生成器,该生成器为XML Schema生成Go类型声明和编组/解组...

    Maven的pom.xml配置文件详细配置说明

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd "&gt; &lt;!-- 父项目的坐标。如果项目中没有规定某个元素...

    common_schema-2.2.sql

    mysql common_schema 完整sql。适合5.1版本以上,支持5.7以下的简单的json内容获取

    xml入门教程/xml入门教程

    7) XML继承自SGML(标准通用标记语言)。SGML的前身GML由IBM在1960年发明,用于描述设备无关的文本 8) XML是SGML的子语言,由SGML简化而来,起初的目的是为Web的结构文档提供服务。 9) W3C组织在1998年2月10日发布...

    C#XML入门经典 C#编程人员必备的XML技能.part2

    在.NET中实现DOM &lt;br&gt;6.1 文档对象模型 6.1.1 文档对象模型与流模型 6.1.2 .NET DOM继承模型 6.2 XmlNode类 6.2.1 XmlNode的定义 6.2.2 XmlNode的属性 6.2.3 XmlNode的方法 6.3 XmlDocument...

    spring框架配置bean的高级属性

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"&gt; &lt;!--配置数据源-...

    spring aop 实现源代码--xml and annotation(带lib包)

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4. xsi:schemaLocation="http://www.springframework.org/schema/beans 5. ...

    springboot集成impala(包含yml、impala配置类、pom.xml、impala jar)

    springboot集成impala,包含yml文件、impala配置Bean、ImpalaJDBC41-2.6.4.1005.jar和impala在pom.xml中的配置,有问题留言

    OmniGraffle-5说明书

    OmniGraffle使用苹果的XML schema格式的plist存储数据,其扩展名为.graffle。 OmniGraffle使用称为Quartz的Mac OS X的图形层,并利用了其反锯齿,平滑缩放,透明拖放阴影等一系列特性。OmniGraffle 4增加了贝塞尔...

    IKAnalyzer-solr4.x-update.zip

    通过继承Analyzer编写自定义类UseSmartIKAnalyzer和NotUseSmartIKAnalyzer,实现智能分词和最细粒度分词,支持solr4.7通过配置schema.xml实现不同的分词效果 &lt;!-- 使用智能分词 --&gt; &lt;!-- 使用智能分词 --...

    Java语言基础下载

    XML Schema 379 Schema和DTD的区别: 380 Schema的数据类型 380 样式表(XSL) 384 CSS样式表 384 XSL样式表 385 XSL的基本结构 386 XSL的基本语法 390 节点选择语句&lt;xsl:value-of &gt; 392 循环判断语句&lt;xsl:for-each&gt;...

    Spring-Reference_zh_CN(Spring中文参考手册)

    6.3. Schema-based AOP support 6.3.1. 声明一个切面 6.3.2. 声明一个切入点 6.3.3. 声明通知 6.3.3.1. 通知(Advice) 6.3.3.2. 返回后通知(After returning advice) 6.3.3.3. 抛出异常后通知(After throwing ...

    JAVA自学之路

    (XML/XSL、XSLT/DTD、SCHEMA等基础的概念、关于Java的编程可以暂时扔在一边) 8:Hibernate OR Mapping原理 Hibernate基础开发步骤 Hibernate基本接口(重点Session) 普通属性映射 关联关系映射 Native SQL ...

    Hibernate+中文文档

    20.1. Schema自动生成(Automatic schema generation) 20.1.1. 对schema定制化(Customizing the schema) 20.1.2. 运行该工具 20.1.3. 属性(Properties) 20.1.4. 使用Ant(Using Ant) 20.1.5. 对schema的增量...

    mybatis学习笔记

    目录 1 Mybatis入门 1 1.1 单独使用jdbc编程问题总结 1 1.1.1 jdbc程序 1 1.1.2 jdbc编程步骤: 2 1.1.3 jdbc问题总结如下: 3 1.2 MyBatis介绍 3 1.3 Mybatis架构 3 ...8.4.2 Table schema问题 74

    Hibernate_3.2.0_符合Java习惯的关系数据库持久化

    20.1. Schema自动生成(Automatic schema generation) 20.1.1. 对schema定制化(Customizing the schema) 20.1.2. 运行该工具 20.1.3. 属性(Properties) 20.1.4. 使用Ant(Using Ant) 20.1.5. 对schema的增量...

    HibernateAPI中文版.chm

    20.1. Schema自动生成(Automatic schema generation) 20.1.1. 对schema定制化(Customizing the schema) 20.1.2. 运行该工具 20.1.3. 属性(Properties) 20.1.4. 使用Ant(Using Ant) 20.1.5. 对schema的增量...

    hibernate3.2中文文档(chm格式)

    20.1. Schema自动生成(Automatic schema generation) 20.1.1. 对schema定制化(Customizing the schema) 20.1.2. 运行该工具 20.1.3. 属性(Properties) 20.1.4. 使用Ant(Using Ant) 20.1.5. 对schema的增量...

    wsdl2avro:WSDL2Avro 是一个 Scala 库,可让您将数据类型从 SOAP WSDL 转换为 Avro 模式

    将 XML 原语转换为 Avro 原语通过跟踪基类型并将基类型的字段与继承类型的字段组合来处理继承(Avro 不支持)。安装WSDL2Avro发布在 Maven Central 上,因此很容易将其包含在您的项目中:SBT lib

Global site tag (gtag.js) - Google Analytics