声明一个元素。

<elementabstract = Boolean : falseblock = (#all | List of (extension | restriction | substitution))default = stringfinal = (#all | List of (extension | restriction))fixed = stringform = (qualified | unqualified)id = IDmaxOccurs = (nonNegativeInteger | unbounded) : 1minOccurs = nonNegativeInteger : 1name = NCNamenillable = Boolean : falseref = QNamesubstitutionGroup = QNametype = QName{any attributes with non-schema Namespace}...>
Content: (annotation?, ((simpleType | complexType)?, (unique | key |
keyref)*))
</element>

属性
abstract

一个指示符,指示元素是否可以在实例文档中使用。如果该值为 true,则元素不能出现在实例文档中。而 substitutionGroup 属性包含该元素的限定名 (QName) 的其他元素必须出现在该元素的位置。多个元素可以在其 substitutionGroup 属性中引用该元素。

默认值为 false。

可选项。

block

派生的类型。block 属性防止具有指定派生类型的元素被用于替代该元素。该值可以包含 #all 或者一个列表,该列表是 extension、restriction 或 substitution 的子集。

extension

防止通过扩展派生的元素被用来替代该元素。

restriction

防止通过限制派生的元素被用来替代该元素。

substitution

防止通过替换派生的元素被用来替代该元素。

#all

防止所有派生的元素被用来替代该元素。

可选项。

default

如果元素内容是简单类型或者元素内容是 textOnly,则为元素的默认值。

fixed 和 default 属性相互排斥。

如果元素包含简单类型,则该值必须是该类型的有效值。

可选项。

substitutionGroup

可用来替代该元素的元素的名称。该元素必须具有相同的类型或从指定元素类型派生的类型。

如果引用的元素是在全局级别声明的(父元素是 schema 元素),则可以在任何元素上使用该属性。

该值必须是 QName。

可选项。

final

派生的类型。final 属性在 element 元素上设置 final 属性的默认值。该值可以包含 #all 或者一个列表,该列表是 extension 或 restriction 的子集。

extension

防止通过扩展派生的元素被用来替代该元素。

restriction

防止通过限制派生的元素被用来替代该元素。

#all

防止所有派生的元素被用来替代该元素。

如果包含元素不是 schema 元素,则会被禁止。

可选项。

fixed

如果元素的内容是简单类型或其内容是 textOnly,则为该元素的预确定的、不可更改的值。

fixed 和 default 属性相互排斥。

可选项。

form

该元素的形式。默认值是包含该属性的 schema 元素的 elementFormDefault 属性的值。该值必须是下列字符串之一:“qualified”或“unqualified”。

如果该值是非限定的,则无须通过命名空间前缀限定该元素。

如果该值是限定的,则必须通过命名空间前缀限定该元素。

可选项。

id

该元素的 ID。id 值必须属于类型 ID 并且在包含该元素的文档中是唯一的。

可选项。

maxOccurs

该元素可以在包含元素中出现的最大次数。该值可以是大于或等于零的整数。若不想对最大次数设置任何限制,请使用字符串“unbounded”。

如果包含元素为 schema 元素,则会被禁止。

可选项。

minOccurs

该元素可以在包含元素中出现的最小次数。该值可以是大于或等于零的整数。若要指定该元素是可选的,请将此属性设置为零。

如果包含元素为 schema 元素,则会被禁止。

可选项。

name

元素的名称。该名称必须是在 XML 命名空间规范中定义的无冒号名称 (NCName)。Name 和 ref 属性不能同时出现。

如果包含元素是 schema 元素,则是必选项。

可选项。

nillable

一个指示符,指示是否可以将显式的零值分配给该元素。此项应用于元素内容并且不是该元素的属性。默认值为 false。

如果 nillable 为 true,将使该元素的实例可以将 nil 属性设置为 true。nil 属性被定义为实例的 XML 架构命名空间的一部分。

例如,下段定义了单个元素,同时将 nillable 设置为 true。

<xs:element name="myDate" type="xs:date" nillable="true"/>

下段使用该元素并具有显式零值(nil 属性设置为 true)。

<myDate xsi:nil="true"></myDate>

可选项。

ref

在此架构(或者由指定命名空间指示的其他架构)中声明的元素的名称。ref 值必须是 QName。ref 可以包含命名空间前缀。

如果包含元素为 schema 元素,则会被禁止。

如果 ref 属性出现,则 complexType、simpleType、key、keyref 和 unique 元素以及 nillable、default、fixed、form、block 和 type 属性不能出现。

<xs:element ref="comment"/>

可选项。

type

或者是内置数据类型的名称,或者是在此架构(或者由指定命名空间指示的其他架构)中定义的 simpleType 或 complexType 元素的名称。提供的值必须与引用的 simpleType 或 complexType 元素上的 name 属性相对应。

type 和 ref 属性是互相排斥的。

若要使用现有简单类型或复杂类型定义声明一个元素,请使用 type 属性指定现有类型。

<xs:element name="name" type="xs:string"/>

可选项。

元素信息

出现次数

在架构中定义的元素的数目。

父元素

schema、choice、all、sequence

内容

simpleType、complexType、key、keyref、unique

备注
元素声明将名称与类型定义关联,类型定义可以是内置数据类型、简单类型或复杂类型。

元素声明可以作为 schema 元素(具有全局范围)的子元素存在或在复杂类型定义内存在。在复杂类型内,元素声明可以作为本地声明或对具有全局范围的元素的引用存在。

全局元素声明必须直接定义复杂类型。

只有在 ref 和 type 属性均不存在时,simpleType 或 complexType 元素才可以作为子元素存在。

此外,元素可以通过在 choice、all、sequence 和 complexType 元素内的引用出现。

示例
以下示例包含两个元素,这两个元素可以彼此替代。

XML
<xs:element name="cat" type="xs:string"/> <xs:element name="dog" type="xs:string"/> <xs:element name="redDog" type="xs:string" substitutionGroup="dog" /> <xs:element name="brownDog" type="xs:string" substitutionGroup ="dog" /> <xs:element name="pets"> <xs:complexType> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element ref="cat"/> <xs:element ref="dog"/> </xs:choice> </xs:complexType> </xs:element> 

其他资源
有关更多信息,请参见 www.w3.org/TR/2001/REC-xmlschema-1-20010502/#element-all 上的“W3C XML Schema Part 1: Structures Recommendation”(英文)。

另请参见
参考信息XML 架构 (XSD) 参考
XML 架构元素

XSD标准架构-----xsd:element 元素详解相关推荐

  1. 推荐系统整体架构及算法流程详解

    省时查报告-专业.及时.全面的行研报告库 省时查方案-专业.及时.全面的营销策划方案库 知识图谱在美团推荐场景中的应用实践 搜索场景下的智能实体推荐 机器学习在B站推荐系统中的应用实践 小红书推荐系统 ...

  2. 推荐系统架构与算法流程详解

    你知道的越多,不知道的就越多,业余的像一棵小草! 成功路上并不拥挤,因为坚持的人不多. 编辑:业余草 zhuanlan.zhihu.com/p/259985388 推荐:https://www.xtt ...

  3. 应用架构、业务架构、技术架构和业务流程图详解「建议收藏」

    应用架构.业务架构.技术架构和业务流程图详解「建议收藏」 应用架构(ApplicationArchitecture)是描述了IT系统功能和技术实现的内容.应用架构分为以下两个不同的层次:企业级的应用架 ...

  4. Python精讲:在Python中添加和删除集合元素详解

    欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是<在Python中添加和删除集合元素详解>.本知识点主要讲的是添加和删除元素,包括:在Python中向集合里面添加元素可以使用 ...

  5. Python 标准库之 sys 模块详解

    Python sys 模块详解 1. 简介 "sys"即"system","系统"之意.该模块提供了一些接口,用于访问 Python 解释器 ...

  6. 【Android架构师java原理详解】二;反射原理及动态代理模式

    前言: 本篇为Android架构师java原理专题二:反射原理及动态代理模式 大公司面试都要求我们有扎实的Java语言基础.而很多Android开发朋友这一块并不是很熟练,甚至半路初级底子很薄,这给我 ...

  7. 并发编程之CPU缓存架构缓存一致性协议详解(二)

    并发编程之CPU缓存架构&缓存一致性协议详解 CPU高速缓存(Cache Memory) CPU高速缓存 在CPU访问存储设备时,无论是存取数据抑或存取指令,都趋于聚集在一片连续的区域中,这就 ...

  8. Linux的tty架构及UART驱动详解

    Linux的tty架构及UART驱动详解 一.模块硬件学习 1.1. Uart介绍 通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),通常称 ...

  9. html里的section可以设置id,html5中section元素详解

    html5中section元素详解 一.总结 一句话总结: section元素 用来定义文章中的章节(通常应该有标题和段落内容) section元素的作用就是给内容分段,给页面分区 1.section ...

最新文章

  1. 软件工程2018第二次团队作业
  2. Vue实现仿音乐播放器5-实现今日推荐访问百度音乐API获取数据
  3. 【纪中集训2019.3.26】动态半平面交
  4. android中文离线api_比林肯法球Linken sphere浏览器更多更新指纹的国产防关联软件-VMLogin中文版浏览器...
  5. java jolt tuxedo_java通过jolt调用tuxedo服务.xls
  6. LeetCode 1610. 可见点的最大数目(atan2函数求夹角)
  7. Vue 过渡效果的组件
  8. 信息学奥赛一本通C++语言——1068:与指定数字相同的数的个数
  9. 工信部强化车联网安全监管、上云可有效阻止勒索攻击|全球网络安全热点
  10. 【bootcamp问答系统部署】
  11. 《明解C语言 入门篇》第4章 程序的循环控制 练习题解答
  12. 字符数组初始化c语言,C语言字符数组
  13. 数字信号处理教程答案及解析(第五版)
  14. dm9000网卡驱动分析
  15. 转换到coff期间_fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏 | Lellansin's 冰森...
  16. antd去掉table自带的分页条
  17. 在mac上使用vscode创建第一个Python项目
  18. 【LOJ#10064】黑暗城堡
  19. 【常识】常见外国计量单位
  20. python调用API轻松实现AI 换脸

热门文章

  1. ubuntu操作系统下载
  2. 让电脑通过gns3里的路由器上网
  3. 网页设计和用户界面设计
  4. Office 2016使用NTKO OFFICE控件提示“文件存取错误”的解决办法
  5. 011:视图函数介绍
  6. python类的__slots__属性、__del__属性、上下文(__enter__和__exit__)、
  7. Hibernate- 子查询
  8. 从游戏脚本语言说起,剖析Mono所搭建的脚本基础
  9. 【转】ibatis的简介与初步搭建应用
  10. Windows Server 2012 文件服务器群集