如何定义复合元素?
请看这个复合 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>
分享到:
相关推荐
掌握在XML Schema中如何定义元素和属性,如何使用限制、列表和合并派生自己的简单数据类型,如何定义复杂数据类型,全局/局部元素和数据类型之间的区别;如何将XML Schema文档关联到XML实例数据文档,并完成文档的...
掌握在XML Schema中如何定义元素和属性,如何使用限制、列表和合并派生自己的简单数据类型,如何定义复杂数据类型,全局/局部元素和数据类型之间的区别;如何将XML Schema文档关联到XML实例数据文档,并完成文档的...
掌握在XML Schema中如何定义元素和属性,如何使用限制、列表和合并派生自己的简单数据类型,如何定义复杂数据类型,全局/局部元素和数据类型之间的区别;如何将XML Schema文档关联到XML实例数据文档,并完成文档的...
掌握在XML Schema中如何定义元素和属性,如何使用限制、列表和合并派生自己的简单数据类型,如何定义复杂数据类型,全局/局部元素和数据类型之间的区别;如何将XML Schema文档关联到XML实例数据文档,并完成文档的...
很多JAVA框架,都会用XML文件作为配置文件,而XML文件往往对元素都有严格的定义,这...本文件是对XML Schema语法学习整理的思维导图,包括如果定义和使用schema文件,shcema语法中的简单类型、复杂类型的定义和使用等。
• 了解XML Schema推荐标准 • 掌握XML Schema和DTD的区别 • 掌握元素和属性的声明 • 理解元素和属性的类型 • 掌握简单类型和复杂类型的定义 • 掌握模式与名称空间 • 掌握在实例中引用模式文档 • 了解注解 • ...
掌握在XML Schema中如何定义元素和属性,如何使用限制、列表和合并派生自己的简单数据类型,如何定义复杂数据类型,全局/局部元素和数据类型之间的区别;如何将XML Schema文档关联到XML实例数据文档,并完成文档的...
@canonical指令用于首选元素定义。 建筑 热重载组合的网关架构(不重新启动服务器)。 轮询远程子模式更改。 用于添加/删除远程子服务的突变。 处理子服务请求超时。 使用GitHub API管理简单的架构注册表。 从...
2.xml文件是由元素和元素的内容以及属性组成的,一个xml文件中只能有一个根元素,标签和标签的内容加在一起叫作一个元素。xml是大小写 敏感的,只能以字母或下划线开头。 字符转义 < 代表 ", > 代表 ">" , &...
猫鼬历史日志 将事件集合添加到架构 用法 模式设置: var mongoose = require ( ... meta属性允许您将任意复杂的对象附加到history元素上。 首次保存文档时,它将自动在当前时间添加一个{ status : "created" }记录。
你要在DTD中定义一个元素,然后在XML文档中使用。元素的定义语法为:<!ELEMENT DESCRIPTION (#PCDATA, DEFINITION)*> 说明: "<!ELEMENT" 是元素的声明,说明你要定义的是一个元素; 声明后面的"DESCRIPTION",...
虽然我们可以在我们自己的 Nuxeo 存储库中定义自定义词汇表,但它会与 Schema.org 定义的元数据元素显着重叠。 和元素是 Courseload 跟踪的特别重要的概念。 由于每个人都可以从使用相同的术语集来描述相同的对象中...
20.1. Schema自动生成(Automatic schema generation) 20.1.1. 对schema定制化(Customizing the schema) 20.1.2. 运行该工具 20.1.3. 属性(Properties) 20.1.4. 使用Ant(Using Ant) 20.1.5. 对schema的增量...
用JAXB的xjc生成的Java类代表了在XML模式中不同的元素和复杂类型(complexType)。(一个复杂类型通过指定属性和元素内的元素来提供对一个元素的限定)。一个符合XML模式的XML文档可以从这些Java类中构建出来。 在这...
5.1 包含输入文件中的元素和属性 5.2 直接元素构造器 5.3 计算构造器 第6章 使用FLWOR表达式查询和连接 6.1 使用路径表达式查询 6.2 FLWOR表达式 6.3 量化表达式 6.4 选择不同的值 6.5 连接 第7章 ...
foreignKey 外键,对应事实表中的一个列,它通过 <Hierarchy> 元素中的主键属性连接起来。 3.4. Hierarchy 你一定要指定其中的各种关系 , 如果没有指定 , 就默认 Hierarchy 里面装的是来自立方体中的真实表 . ...
20.1. Schema自动生成(Automatic schema generation) 20.1.1. 对schema定制化(Customizing the schema) 20.1.2. 运行该工具 20.1.3. 属性(Properties) 20.1.4. 使用Ant(Using Ant) 20.1.5. 对schema的增量更新...
把可扩展标记语言(XML)应用于电力系统中,利用其...声明一个元素名为Substation的用户自定义的复杂数据类型,并通过嵌入复杂数据类型的定义实现用户自定义的复杂数据类型;声明一个Transformer元素;各个独立子元素的声明。
20.1. Schema自动生成(Automatic schema generation) 20.1.1. 对schema定制化(Customizing the schema) 20.1.2. 运行该工具 20.1.3. 属性(Properties) 20.1.4. 使用Ant(Using Ant) 20.1.5. 对schema的增量...