extension 元素绑定支持

本主题专门介绍一项旧有技术。现在应通过使用以下链接来创建 XML Web 服务和 XML Web 服务客户端: Windows Communication Foundation.

.NET Framework 为 <extension> 元素提供绑定支持。

Xsd.exe 工具只为复杂内容(而不为简单内容)生成与 base 特性的值对应的基类。

说明

使用 XML 架构定义语言可以通过扩展和限制从基类型派生新的数据类型。扩展始终用于派生复杂类型。扩展可以基于简单内容或复杂内容,区别如下:

  • 简单内容:使用 XPath complexType/simpleContent/extension。派生的复杂类型不包含子元素,而只包含简单内容 - 特性和/或正文文本。

  • 复杂内容:使用 XPath complexType/complexContent/extension。派生的复杂类型和基复杂类型均包含子元素。它们也可以包含特性和正文文本。

XML 架构类型扩展始终通过 .NET Framework 中的类定义完全表示。Xsd.exe 如何从 XML 架构文档生成源代码取决于扩展是基于简单内容还是复杂内容,具体如下:

  • 简单内容:Xsd.exe 生成一个带公共字段的新类,该公共字段的类型与 <extension> 元素的 base 特性指定的基数据类型相对应。

  • 复杂内容:Xsd.exe 生成一个与 <extension> 元素的 base 特性指定的基数据类型相对应的类,以及一个用于派生的数据类型的类。后者是使用诸如 public class DerivedClass : BaseClass 这样的类声明从前者继承而来的。

在从 XML 架构转换成类以及从类转换成新的 XML 架构文档的往返转换过程中,Xsd.exe 将保留任意一种扩展。

有关简单内容扩展的示例,请参见 <simpleContent> 元素。

可能的特性 绑定支持

base

<extension> 元素需要 base 特性,该特性的值为基数据类型的限定名。

对于简单内容扩展,Xsd.exe 工具从 base 特性的值生成一个公共字段。对于复杂内容扩展,Xsd.exe 从 base 值生成一个基类。请参见上文。

id

Xsd.exe 实用工具会忽略旨在提供唯一标识符的 id 特性。

可能的父元素:<complexContent><simpleContent>

可能的子元素:<all><annotation><anyAttribute><attribute><attributeGroup><choice><group><sequence>

另请参见

参考

XmlSchemaComplexContentExtension
XmlSchemaSimpleContentExtension