本主题专门介绍一项旧有技术。现在应通过使用以下链接来创建 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