`
Meros_Z
  • 浏览: 12445 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

XSD入门--part5

    博客分类:
  • XSD
 
阅读更多

XSD复合元素

 

前面已经认识了XSD简单元素,接着就要进入XSD复合元素。何为复合元素?

 

定义——复合元素指包含其他元素或者其他元素属性的XML元素。

 

四种类型的复合元素(均包含属性):

 

  • 空元素
  • 包含其他元素的元素
  • 仅包含文本的元素
  • 包含元素和文本的元素

空元素:

 

<name id="12345"/>

 

 

包含其他元素的元素:

 

<user>
<username>admin</username>
<password>admin</password>
</user>

 

 

仅包含文本的元素:

 

<book type="IT">Java</book>

 

 

包含元素和文本的元素:

 

<books>
<book type="IT">Java</book>
</books>

 

 

 

定义如下复合元素:

 

<user>
<username>admin</username>
<password>admin</password>
</user>

 

 

 

方法一,直接对"user"元素声明:

 

<xs:element name="user">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="username" type="xs:string"/>
      <xs:element name="password" type="xs:string"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>

 指示器 <sequence>指明了其中的子元素"username"和"password"必须按照次序出现。

 

 

方法二,"user"元素可以使用type属性,若干元素均可以使用相同的复合类型:

<xs:element name="user" type="userInfo"/>
<xs:element name="guest" type="userInfo"/>
<xs:element name="administrator" type="userInfo"/>

<xs:complexType name="userInfo">
  <xs:sequence>
    <xs:element name="username" type="xs:string"/>
    <xs:element name="password" type="xs:string"/>
  </xs:sequence>
</xs:complexType>

 

 当然我们我可以以某个复合元素为基础,继续添加一些元素:

<xs:element name="user" type="fullUserInfo"/>

<xs:complexType name="userInfo">
  <xs:sequence>
    <xs:element name="username" type="xs:string"/>
    <xs:element name="password" type="xs:string"/>
  </xs:sequence>
</xs:complexType>

<xs:complexType name="fullUserInfo">
  <xs:complexContent>
    <xs:extension base="userInfo">
      <xs:sequence>
        <xs:element name="address" type="xs:string"/>
        <xs:element name="city" type="xs:string"/>
        <xs:element name="country" type="xs:string"/>
      </xs:sequence>
    </xs:extension>
  </xs:complexContent>
</xs:complexType>

 

 

 

分享到:
评论

相关推荐

    emf-sdo-xsd-SDK-2.3.2.zip

    5. **emf-sdo-xsd-SDK-2.3.2**: 这个插件集成了EMF对SDO的支持,并提供了XSD的处理能力。它使得开发者可以利用EMF的模型驱动开发能力,处理基于SDO的数据对象,并通过XSD来定义和验证这些对象。在Eclipse TPTP插件...

    emf-xsd-SDK-2.6.1

    在"emf-xsd-SDK-2.6.1"的压缩包中,包含了Eclipse环境的相关文件,这通常意味着我们可以在这个环境中开发和测试基于EMF和XSD的模型应用。Eclipse是一个集成开发环境(IDE),支持多种编程语言和插件,EMF相关的插件...

    spring-aop-3.0.xsd spring-beans-3.0 spring-context-3.0.xsd spring-mvc-3.1.xsd

    1. **spring-aop-3.0.xsd**: Spring AOP(面向切面编程)是 Spring 框架的一个重要部分,它允许开发者在不修改源代码的情况下,实现跨切面的关注点,如日志、事务管理等。`spring-aop-3.0.xsd` 是 Spring AOP 的 ...

    spring-beans-1.3.xsd

    spring-beans-4.3.xsd spring-beans-4.3.xsd spring-beans-4.3.xsd spring-beans-4.3.xsd

    关于Spring的spring-beans-xsd和tx-xsd aop-xsd等

    在给定的压缩包中,包含了`spring-beans-3.0.xsd`、`spring-context-3.0.xsd`、`spring-aop-3.0.xsd`和`spring-tx-3.0.xsd`这四个重要的XSD文件,它们分别对应Spring框架的不同核心模块。 1. **spring-beans-3.0....

    emf-sdo-xsd-SDK-2.0.1.zip

    "struts emf-sdo-xsd-SDK-2.0.1.zip"这个压缩包很可能包含了一个用于Struts框架的EMF SDO XSD SDK的版本2.0.1。Struts是一个流行的Java Web应用程序框架,它基于MVC(Model-View-Controller)设计模式,帮助开发者...

    xsd2cc-master_xsd2cc_XML文件解析小程序_problemf6v_

    【xsd2cc-master_xsd2cc_XML文件解析小程序_problemf6v_】是一个关于XML文件解析的小程序项目,主要用于从XML文件中提取数据并按照预设的模板进行处理。XML(eXtensible Markup Language)是一种标记语言,常用于...

    emf-xsd-Update-2.7.2

    【标题】"emf-xsd-Update-2.7.2" 涉及到的是一个针对Eclipse集成开发环境的扩展,主要关注的是EMF(Eclipse Modeling Framework)和XSD(XML Schema Definition)的更新版本2.7.2。这个更新包包含了对EMF框架的增强...

    emf-xsd-Update-2.10.2

    【标题】"emf-xsd-Update-2.10.2" 是一个与Java可视化开发相关的软件更新版本,主要用于支持Visual Editor的安装和使用。这个版本是2.10.2,通常代表着修复了一些已知问题,增加了新功能,或者优化了性能。 【描述...

    node-xsd-schema-validator:NodeJS的架构(XSD)验证器

    npm install --save xsd-schema-validator 用法 在您的应用程序中使用: var validator = require ( 'xsd-schema-validator' ) ; var xmlStr = '&lt;foo&gt;' ; validator . validateXML ( xmlStr , 'resources/foo.xsd'...

    emf-sdo-xsd-SDK-2.2.1

    标题中的"emf-sdo-xsd-SDK-2.2.1"指的是Eclipse Modeling Framework (EMF) Service Data Objects (SDO) XSD SDK的一个特定版本,即2.2.1。EMF是Eclipse基金会开发的一个强大的建模框架,它允许开发者创建、操作和...

    maven-xsd-plugin-1.4.0-incubating.jar

    maven-xsd-plugin-1.4.0-incubating.jar

    maven-xsd-plugin-1.4.0-incubating-sources.jar

    maven-xsd-plugin-1.4.0-incubating-sources.jar

    castor实现xsd生成javabean所需jar

    加压放入D盘根目录 ...D:\xsd/commons-logging.jar org.exolab.castor.builder.SourceGeneratorMain -types j2 -i "D:\xsd\test\taxMlhl-wsyw-tyRequest.xsd" -package test -dest "D:/xsd/test" -f

    emf-sdo-xsd-SDK-2.4.0.zip

    emf-sdo-xsd-SDK-2.4.0.zip emf是Eclipse modeling framework组建框架的缩写;SDO是服务数据对象的缩写,它是Java程序的一种数据编程框架;emf-sdo-xsd-SDK-2.4.0.zip是Eclipse编程器的组成员之一。

    emf-xsd-SDK-2.7.1

    【标题】"emf-xsd-SDK-2.7.1" 描述的是一个Eclipse插件包,它主要用于支持XML Schema Definition (XSD) 的处理,并与Eclipse Modeling Framework (EMF) 集成,帮助开发者进行Java图形用户界面(GUI)的设计。...

    行业资料-交通装置-XSD-23铝合金车梯.zip

    5. **安全规范**:阐述交通设备的安全标准,如EN131、OSHA等,以及XSD-23车梯如何满足这些标准。 6. **使用和维护**:提供操作指南,包括正确的使用方法、保养注意事项和常见问题的解决方案。 7. **案例分析**:...

    EMF-SDO-XSD-SDK-2.1.0(FOR ECLIPSE 3.1).ZIP

    在"EMF-SDO-XSD-SDK-2.1.0(FOR ECLIPSE 3.1).ZIP"这个压缩包中,我们主要关注的是EMF、SDO和XSD这三者在Eclipse集成开发环境(IDE)中的应用。此插件套装特别针对Eclipse 3.1版本进行了优化,使得开发者可以在...

    springmvc-xsd-4.2.xml

    springmvc-xsd-4.2.xml

Global site tag (gtag.js) - Google Analytics