• 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!!!
  • 相关阅读:
    调度算法的评价指标
    进程调度的时机 切换与过程调度方式
    处理机调度 概念和层次
    线程概念 多线程模型
    进程通信
    进程的状态与转换
    进程的定义
    系统调用
    面试题3
    第2章Arduino UNO板结构说明
  • 原文地址:https://www.cnblogs.com/JunkingBoy/p/14641882.html
Copyright © 2020-2023  润新知