新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     W3CHINA.ORG讨论区     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> 关于 XML 的一般性技术讨论,提供 XML入门资料 和 XML教程
    [返回] 中文XML论坛 - 专业的XML技术讨论区XML.ORG.CN讨论区 - XML技术『 XML基础 』 → [Schema教程]八 XSD 复合元素 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 11830 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: [Schema教程]八 XSD 复合元素 举报  打印  推荐  IE收藏夹 
       本主题类别: DOM    
     yjihcihc 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:13
      积分:76
      门派:XML.ORG.CN
      注册:2010/11/3

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给yjihcihc发送一个短消息 把yjihcihc加入好友 查看yjihcihc的个人资料 搜索yjihcihc在『 XML基础 』的所有贴子 引用回复这个贴子 回复这个贴子 查看yjihcihc的博客楼主
    发贴心情 [Schema教程]八 XSD 复合元素

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

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

    有四种类型的复合元素:
    空元素
    包含其他元素的元素
    仅包含文本的元素
    包含元素和文本的元素
    注释:上述元素均可包含属性!

    复合元素的例子
    复合元素,"product",是空的:

    <product pid="1345"/>
    复合元素,"employee",仅包含其他元素:

    <employee>
    <firstname>John</firstname>
    <lastname>Smith</lastname>
    </employee>
    复合元素,"food",仅包含文本:

    <food type="dessert">Ice cream</food>
    复合元素,"description",包含元素和文本:

    <description>
    It happened on <date lang="norwegian">03.03.99</date> ....
    </description>
    如何定义复合元素?
    请看这个复合 XML 元素,"employee",仅包含其他元素:

    <employee>
    <firstname>John</firstname>
    <lastname>Smith</lastname>
    </employee>[NextPage]
    在 XML Schema 中,我们有两种方式来定义复合元素:
    1. 通过命名此元素,可直接对"employee"元素进行声明,就像这样:

    <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>
    假如您使用上面所描述的方法,那么仅有 "employee" 可使用所规定的复合类型。请注意其子元素,"firstname" 以及 "lastname",被包围在指示器 <sequence>中。这意味着子元素必须以它们被声明的次序出现。您会在 XSD 指示器 这一节学习更多有关指示器的知识。

    2. "employee" 元素可以使用 type 属性,这个属性的作用是引用要使用的复合类型的名称:

    <xs:element name="employee" 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="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>
    本文转载八度网:http://www.wrsaw.cn/Article/ShowArticle.asp?ArticleID=965


       收藏   分享  
    顶(0)
      




    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2010/11/3 15:25:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 XML基础 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/11/28 7:25:19

    本主题贴数1,分页: [1]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    62.500ms