zoukankan      html  css  js  c++  java
  • XSD复合元素

    XSD复合元素

    特点:

    复合元素包含了其他的元素及/或属性。

    什么是复合元素?

    复合元素指包含其他元素及/或属性的 XML 元素。

    复合元素的类型

    有四种类型的复合元素:

    • 空元素

    • 包含其他元素的元素

    • 仅包含文本的元素

    • 包含元素和文本的元素

    空元素
    <product pid="1345"/>
    包含其他元素的元素
    <employee>
     <firstname>John</firstname>
     <lastname>Smith</lastname>
    </employee>
    仅包含文本的元素
    <food type="dessert">Ice cream</food>
    包含元素和文本的元素
    <description>
    It happend on <data lang="norwegian">03.03.99</data> ....
    </description>

    如何定义复合元素

    两种方式

    • 直接对元素进行声明

      • <xs:element name="employee">
         <xs:complexType>
           <xs:sequence>
             <xs:element name="firstname" type="xs:string"/>
             <xs:element name="lastname" type="xs:string"/>
           </xs:sequence>
         </xs:complexType>
        </xs:element>
      • 说明:

      • <!--
        complexType说明是复合元素类型,指示器 <sequence>意味着子元素必须以它们被声明的次序出现
        -->
    • 使用type属性,属性的作用是引用要使用的复合类型的名称

      • <xs:element name="employee" type="personinfo"/>

        <xs:complexType name="personinfo">
           <!--其子元素都可以用personinfo这个属性-->
         <xs:sequence>
           <xs:element name="firstname" type="xs:string"/>
           <xs:element name="lastname" type="xs:string"/>
         </xs:sequence>
        </xs:complexType>
      • 使用了上面所描述的方法,那么若干元素均可以使用相同的复合类型

      • <xs:element name="employee" type="personinfo"/>
        <xs:element name="student" type="personinfo"/>
        <xs:element name="member" type="personinfo"/>

        <xs:complexType name="personinfo">
         <xs:sequence>
           <xs:element name="firstname" type="xs:string"/>
           <xs:element name="lastname" type="xs:string"/>
         </xs:sequence>
        </xs:complexType>
      • 也可以在已有的复合元素之上以某个复合元素为基础,然后添加一些元素

      • <xs:element name="employee" type="fullpersoninfo"/>
        
        <xs:complexType name="personinfo">
          <xs:sequence>
            <xs:element name="firstname" type="xs:string"/>
            <xs:element name="lastname" type="xs:string"/>
          </xs:sequence>
        </xs:complexType>
        
        <xs:complexType name="fullpersoninfo">
          <xs:complexContent>
            <xs:extension base="personinfo">
              <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>

     

    It's a lonely road!!!
  • 相关阅读:
    springboot项目创建父级依赖
    springboot整合测试
    springboot中使用RedisTemplate实现redis数据缓存
    springboot整合redis
    springboot整合shiro
    配置 maven 环境变量
    虚拟机和主机之间一系列工具包,开启双向复制粘贴后导致的内存占用问题
    mysql服务无法启动的问题
    Linux学习遇到的问题(权限问题:例如无法创建目录"**": 权限不够"等等)
    Windows 10 配置Git 环境变量(还有:安装git后,鼠标右键没有“git bush here”)
  • 原文地址:https://www.cnblogs.com/JunkingBoy/p/14641882.html
Copyright © 2011-2022 走看看