XSD标准架构-----<xsd:element> 元素详解

声明一个元素。

<element
  abstract = Boolean : false
  block = (#all | List of (extension | restriction | substitution))
  default = string
  final = (#all | List of (extension | restriction))
  fixed = string
  form = (qualified | unqualified)
  id = ID
  maxOccurs = (nonNegativeInteger | unbounded) : 1
  minOccurs = nonNegativeInteger : 1
  name = NCName
  nillable = Boolean : false
  ref = QName
  substitutionGroup = QName
  type = 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"/>

可选项。

元素信息


出现次数


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


父元素


schemachoiceallsequence


内容


simpleTypecomplexTypekeykeyrefunique

备注

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

元素声明可以作为 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 架构元素

时间: 2024-11-09 03:12:44

XSD标准架构-----<xsd:element> 元素详解的相关文章

玩转CSS3,嗨翻WEB前端,CSS3伪类元素详解/深入浅出[原创][5+3时代]

1.博客背景 在我的上一篇博客中, 很多园友提出说对css3"画图"不是很理解, 在跟他们私聊了一段时间以后,加上自己在开始自学css3的时候的疑惑,我觉得大家之所以不是很理解主要是因为对伪元素不太了解,介于画图和CSS3里一些高大上的特效用的比较广泛的伪类元素就是::before 和 ::after, 写这篇博客主要也是为了起到一个敲门砖的作用,所以本篇博客主要是讲::before 和 ::after.那么就让我们一起来聊聊伪元素吧. 2.CSS历史 伪元素实际上在CSS1(CSS1

史上最全web.xml配置文件元素详解

一.web.xml配置文件常用元素及其意义预览 1 <web-app> 2 3 <!--定义了WEB应用的名字--> 4 <display-name></display-name> 5 6 <!--声明WEB应用的描述信息--> 7 <description></description> 8 9 <!--context-param元素声明应用范围内的初始化参数--> 10 <context-param&g

web.xml配置文件元素详解

一.web.xml配置文件常用元素及其意义 1 <web-app> 2 3 <!--定义了WEB应用的名字--> 4 <display-name></display-name> 5 6 <!--声明WEB应用的描述信息--> 7 <description></description> 8 9 <!--context-param元素声明应用范围内的初始化参数--> 10 <context-param>

web.xml配置文件元素详解(转载)

今天看到一篇关于web.xml配置文件元素的博文,觉得很全面,这里引用过来,方便学习和查询. http://www.cnblogs.com/hafiz/p/5715523.html 一.web.xml配置文件常用元素及其意义预览 1 <web-app> 2 3 <!--定义了WEB应用的名字--> 4 <display-name></display-name> 5 6 <!--声明WEB应用的描述信息--> 7 <description&g

热门前沿知识相关面试问题-MVC/MVP/MVVM架构设计模式面试问题详解

MVC: MVC的定义:M:业务逻辑处理.[业务MODEL]V:处理数据显示的部分.[如xml布局文件]C:Activity处理用户交互的问题.[也就是Activity在MVC中扮演着C的角色] MVC的特点:①.耦合性低.②.可扩展性好.③.模块职责划分明确. MVC的实例详解: 总结:①.利用MVC设计模式,使得项目有了很好的可扩展和维护性.②.controller(控制器)是一个中间桥梁的作用.③.什么时候适合使用MVC模式呢?当一个项目很小, MVP: MVVM: 原文地址:https:

Python标准库与第三方库详解(转载)

转载地址: http://www.codeweblog.com/python%e6%a0%87%e5%87%86%e5%ba%93%e4%b8%8e%e7%ac%ac%e4%b8%89%e6%96%b9%e5%ba%93%e8%af%a6%e8%a7%a3/ 这篇文章主要介绍了Python标准库与第三方库,需要的朋友可以参考下 本文详细罗列并说明了Python的标准库与第三方库如下,供对此有需要的朋友进行参考: Tkinter———— Python默认的图形界面接口.Tkinter是一个和Tk接

linux架构学习第二十六天之LAMP架构原理及搭建详解

内容: 1.何为LAMP 2.LAMP的架构以及通信过程 3.LAMP的搭建过程(rpm包) 4.基于LAMP搭建wordpress博客 一.何为LAMP LAMP(Linux-Apache-MySQL-PHP)网站架构是目前国际流行的Web框架,该框架包括:Linux操作系统,Apache网络服务器,MySQL数据库,Perl.PHP或者Python编程语言,所有组成产品均是开源软件,是国际上成熟的架构框架,很多流行的商业应用都是采取这个架构,LAMP具有通用.跨平台.高性能.低价格的优势,因

mysql数据库高可用架构-----MHA-0.56的详解

大家都知道,任何线上环境,都必须搭载高可用架构,是web的,也要是数据库的,严格来说更是整个架构的高可用. mysql作为时下比较热的数据库,高可用架构更加需求大.不过,以前老旧那一套已经不合时宜,现在用的比较多的就是MHA和PXC了. PXC的优势是做到同写同回滚,达到数据高度一致性,通过一些程序和代码来做第三方分发,可以做到一定程度的读写分离,是个相当不错的高可用解决方案,不过对网络要求比较高,配置也略复杂一些,最好是同一个机房里面做,不过这并不是本文重点,后面找时间再写相关的文章. 本文要

HTML。CSS浮动元素详解

浮动定位是指 1.1将元素排除在普通流之外,即元素将脱离标准文档流 1.2元素将不在页面占用空间 1.3将浮动元素放置在包含框的左边或者右边 1.4浮动元素依旧位于包含框之内 2. 浮动的框可以向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止经常使用它来实现特殊的定位效果 3.包含框中有三个元素框,如果把框 1 向右浮动,则它脱离文档流并且向右移动,直到它的右边缘碰到包含框的右边缘 4.当框 1 向左浮动时,它脱离文档流并且向左移动,直到它的左边缘碰到包含框的左边缘 5.因为框