XML 教程

XML 教程 XML 简介 XML 用途 XML 树结构 XML 语法 XML 元素 XML 属性 XML 命名空间 XML Display XML HttpRequest XML Parser XML DOM XML XPath XML XSLT XML XQuery XML XLink XML 验证器 XML DTD XML Schema XML 服务器 XML 实例 XML 测验

XML AJAX

AJAX 简介 AJAX XMLHttp AJAX 请求 AJAX 响应 AJAX XML 文件 AJAX PHP AJAX ASP AJAX 数据库 AJAX 应用程序 AJAX 实例

XML DOM

DOM 简介 DOM 节点 DOM 访问节点 DOM 节点信息 DOM 节点列表 DOM 节点遍历 DOM 节点导航 DOM 获取节点 DOM 更改节点 DOM 删除节点 DOM 替换节点 DOM 创建节点 DOM 添加节点 DOM 克隆节点 DOM 实例

XPath 教程

XPath 简介 XPath 节点 XPath 语法 XPath 轴(Axes) XPath 运算符 XPath 实例

XSLT 教程

XSLT 简介 XSL 语言 XSLT 转换 XSLT <template> XSLT <value-of> XSLT <for-each> XSLT <sort> XSLT <if> XSLT <choose> XSLT Apply XSLT 客户端 XSLT 服务端 XSLT 编辑 XML XSLT 实例

XQuery 教程

XQuery 简介 XQuery 实例 XQuery FLWOR 表达式 XQuery FLWOR + HTML XQuery 术语 XQuery 语法 XQuery 添加元素和属性 XQuery 选择和过滤 XQuery 函数

XML DTD

DTD 简介 DTD 构建模块 DTD 元素 DTD 属性 DTD 元素 vs. 属性 DTD 实体 DTD 实例

XSD Schema

XSD 简介 XSD How To XSD <schema> XSD 元素 XSD 属性 XSD 限制

XSD Complex

XSD 复杂元素 XSD 空元素 XSD 仅限元素 XSD 纯文本元素 XSD 混合 XSD 指示器 XSD <any> XSD <anyAttribute> XSD 替换 XSD 实例

XSD 数据类型

XSD 字符串 XSD 日期 XSD 数值 XSD 杂项 XSD 参考手册

Web Services

XML Services 简介 XML WSDL XML SOAP XML RDF XML RSS

参考手册

DOM 节点类型 DOM 节点 DOM NodeList DOM NamedNodeMap DOM 文档 DOM 元素 DOM 属性 DOM 文本 DOM CDATA DOM 注释 DOM XMLHttpRequest DOM 解析器 XSLT 元素 XSLT/XPath 函数

XML 架构 complexType 元素


❮ 完整的 XML 架构参考

定义和用法

complexType 元素定义了一个复杂类型。 复杂类型元素是包含其他元素和/或属性的 XML 元素。

元素信息

  • 父元素: element, redefine, schema

语法

<complexType
id=ID
name=NCName
abstract=true|false
mixed=true|false
block=(#all|list of (extension|restriction))
final=(#all|list of (extension|restriction))
any attributes
>

(annotation?,(simpleContent|complexContent|((group|all|
choice|sequence)?,((attribute|attributeGroup)*,anyAttribute?))))

</complexType>

(? 符号声明该元素可以出现0 次或1 次,* 符号声明该元素可以在complexType 元素内出现0 次或多次)

属性 描述
id 可选。指定元素的唯一 ID
name 可选。指定元素的名称
abstract 可选。指定是否可以在实例文档中使用复杂类型。 True 表示元素不能直接使用这种复杂类型,而必须使用从这种复杂类型派生的复杂类型。 默认为假
mixed 可选。指定是否允许字符数据出现在此 complexType 元素的子元素之间。 默认为假。 如果 simpleContent 元素是子元素,则不允许使用混合属性!
block 可选。防止使用具有指定派生类型的复杂类型代替此复杂类型。 此值可以包含#all 或作为扩展或限制子集的列表:
  • extension - 防止由扩展派生的复杂类型
  • restriction - 防止由限制派生的复杂类型
  • #all - 阻止所有派生的复杂类型
final 可选。防止此复杂类型元素的指定类型派生。 可以包含#all 或作为扩展或限制子集的列表。
  • extension - 防止通过扩展派生
  • restriction - 防止通过限制进行推导
  • #all - 阻止所有派生
any attributes 可选。 指定具有非模式命名空间的任何其他属性

实例 1

以下示例有一个名为 "note" 的元素,它属于复杂类型:

<xs:element name="note">
  <xs:complexType>
    <xs:sequence>
  <xs:element name="to" type="xs:string"/>
  <xs:element name="from" type="xs:string"/>
  <xs:element name="heading" type="xs:string"/>
  <xs:element name="body" type="xs:string"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>

实例 2

以下示例具有一个复杂类型 "fullpersoninfo",它从另一个复杂类型 "personinfo" 派生,通过使用三个附加元素(address, city 和 country)扩展继承的类型:

<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>

在上面的示例中,"employee" 元素必须按顺序包含以下元素: "firstname", "lastname", "address", "city", 和 "country"。


❮ 完整的 XML 架构参考