XSD 复合元素概述

news/2024/7/5 2:17:30
复合元素包含了其他的元素及/或属性。

什么是复合元素?

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

有四种类型的复合元素:

  1. 空元素
  2. 包含其他元素的元素
  3. 仅包含文本的元素
  4. 包含元素和文本的元素

注意: 上述元素均可包含属性!

复合元素的例子

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

<product pid="1345"/>

复合元素,"employee",仅包含其他元素:

<employee>
<firstname>John</firstname>
<lastname>Smith</lastname>
</employee>

复合 XML 元素,"food",仅包含文本:

<food type="dessert">Ice cream</food>

复合XML元素,"description"包含元素和文本:

<description>
It happened on <date lang="norwegian">03.03.99</date> ....
</description>

如何定义复合元素?

请看这个复合 XML 元素,"employee",仅包含其他元素:

<employee>
<firstname>John</firstname>
<lastname>Smith</lastname>
</employee>

在 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://lihuaxi.xjx100.cn/news/278441.html

相关文章

乘风破浪的博士:2019 ACM博士论文奖公布,清华姚班毕业生、MIT学霸吴佳俊获荣誉提名...

机器之心报道参与&#xff1a;魔王、杜伟、小舟一年一度的 ACM 博士论文奖今日发布&#xff0c;毕业于特拉维夫大学的 Dor Minzer 获得该奖项。荣誉提名奖则授予了瑞士洛桑联邦理工学院&#xff08;EPFL&#xff09;博士 Jakub Tarnawski 和 MIT 博士吴佳俊。今日&#xff0c;2…

少走弯路:强烈推荐的TensorFlow快速入门资料(可下载)

&#xff08;图片付费下载自视觉中国&#xff09;作者 | 黄海广来源 | 机器学习初学者&#xff08;ID: ai-start-com&#xff09;知识更新非常快&#xff0c;需要一直学习才能跟上时代进步&#xff0c;举个例子&#xff1a;吴恩达老师在深度学习课上讲的TensorFlow使用&#xf…

XWiki 4.3 正式版发布

XWiki 4.3 正式版发布了&#xff0c;工作空间、扩展管理器、分发向导和 REST API 做了很多改进&#xff0c;改进了翻译和新的体验的 Solr 搜索。 XWiki是一个由Java编写的基于LGPL协议发布的开源wiki和应用平台。它的开发平台特性允许创建协作式Web应用&#xff0c;同时也提供了…

python多进程_python多进程

上一期我们讲了python中多线程的使用&#xff0c;忘记的小伙伴请戳链接复习&#xff0c;https://zhuanlan.zhihu.com/p/262638052。还记得我们说到&#xff0c;多线程并不是真正的并发&#xff0c;只是充分利用了等待时间&#xff0c;所以当遇到CPU密集型的任务时&#xff0c;多…

图像自标记的可视化指南

点击上方“小白学视觉”&#xff0c;选择加"星标"或“置顶”重磅干货&#xff0c;第一时间送达导读将聚类和表示学习结合在一起&#xff0c;可以同时学习特征和标签。在过去的一年中&#xff0c;人们提出了几种图像表示的自监督学习方法。这种方法最近的趋势是使用对…

微服务划分的姿势

点击上方“方志朋”&#xff0c;选择“设为星标”回复”666“获取新整理的面试资料来源&#xff1a;http://t.cn/AiYeeMD7我们知道微服务是一种理念&#xff0c;没有确切的定义和边界&#xff0c;好比设计原则&#xff0c;是属于抽象的概念。在定义不明确的情况下谈划分也是一种…

JS---设计简易日历

<!DOCTYPE html> <html> <head lang"en"><meta charset"UTF-8"><title></title><script>/*var tdnew Date(2017,9,11);alert(td);*/// var tdnew Date();// alert(td.getTime());//设计一个定时器---例如&#…

XSD 仅含元素概述

"仅含元素"的复合类型元素是只能包含其他元素的元素。复合类型仅包含元素 XML 元素&#xff0c;"person"&#xff0c;仅包含其他的元素&#xff1a; <person> <firstname>John</firstname> <lastname>Smith</lastname> &l…