xsdXS:复杂类型


介绍

xs:complexType提供实例文档中XML元素内容的描述。 xs:complexType的定义可以全局进行,在这种情况下,它具有名称并且可以在模式中重用,或者它可以在原位并且仅在声明的上下文中使用。

参数

属性描述
抽象设置为true时,复杂类型不能通过xsi:type直接在实例XML文档中使用。但是,它可以用作元素定义的基本类型。 (默认为false) - 仅对根级别xs:complexType有效
限制可以在XML实例文档中使用的类型(如果设置,则默认为xs:schemas blockDefault属性的值,否则默认为空,值'#all'|列表('extension','list', '联盟')由空格分隔)。
最后限制派生类型在模式中以某种方式使用此类型(默认为xs:schemas finalDefault属性的值,如果设置,否则默认为空,值'#all'|或列表('extension','list) ','union')由空格分隔) - 仅对根级别xs:complexType有效
ID 架构项的id(可选)
表示实例XML元素可能包含混合内容(默认为false)
名称 xs:complexType的名称 - 仅对根级别xs:complexType有效
任何不允许在“ http://www.w3.org/2001/XMLSchema ”命名空间中包含任何其他属性。
----------------- ------
分子 描述
----------------- ------
XS:注释提供添加文档和机器可读数据的功能。
XS:简单文本当xs:complexType派生自xs:simpleType时使用。
XS:复杂内容当xs:complexType派生自另一个xs:complexType时使用。
XS:组将xs:group中的元素添加到xs:complexType定义中
XS:所有将xs:all中的元素添加到xs:complexType定义中
XS:选择将xs:choice中的元素添加到xs:complexType定义中
XS:序列将xs:sequence中的元素添加到xs:complexType定义中
XS:属性将xs:属性添加到xs:complexType定义
XS:attributeGroup 将xs:attributeGroup添加到xs:complexType定义
XS:anyAttribute 将xs:anyAttribute添加到xs:complexType定义

备注

从xs:complexType派生

当xs:complexType派生自另一个xs时:complexType可以通过扩展限制来实现

  • extension - 派生类型获取基类型中定义的所有内容并添加到它。
  • 限制 - 派生类型仅从基本类型中选择部分,仅允许其所需的部分,不能添加其他项目。

从xs:simpleType派生

当xs:complexType派生自xs时:simpleType可以通过扩展来实现 ,在这种情况下,它可以向结果类型添加属性,但不能添加元素。

内容类型

从概念上讲,xs:complexType包含简单复杂的内容。如果xs:complexType派生自基于xs:typeSimpleType(xs:int,xs:string等)的类型,那么它很简单 。如果它派生自包含复杂内容的xs:complexType,那么它本身就很复杂 (如果xs:complexType不是从类型派生的,那么它也很复杂)。

XS:复杂类型 相关例子