simpleContent 元素绑定支持

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

.NET Framework 为 <simpleContent> 元素提供部分绑定支持。

简单内容扩展始终通过 .NET Framework 中的类定义完全表示。Xsd.exe 不能识别简单内容限制。

说明

XML 架构定义语言使用 <simpleContent> 元素定义不包含子元素的复杂类型。包含简单内容(特性和/或正文文本)的复杂类型是使用 <simpleContent> 元素下的 <extension> 或 <restriction> 元素,通过扩展或限制从基类型派生的。

当从 XML 架构文档生成源代码时,Xsd.exe 会生成一个公共字段,其类型与 <extension> 元素的 base 特性指定的基类型相对应。有关 XML 架构中的内置简单类型与 .NET Framework 类型之间的绑定,请参见《.NET Framework 开发人员指南》中的“XML 架构 (XSD) 类型与 .NET Framework 类型之间的数据类型支持”。

简单内容扩展和限制在架构对象模型中分别由类 XmlSchemaSimpleContentExtensionXmlSchemaSimpleContentRestriction 表示,也可以由 XmlSchemaSimpleContent 类表示。

这些类的对象可以用来以编程方式创建架构对象模型,该模型与定义包含简单内容的复杂类型的 XSD 文档对应。

示例

以下代码是输入 XML 架构文档。

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
            targetNamespace="http://example.org/" xmlns="http://example.org/" elementFormDefault="qualified">
<xsd:element name="Distance">
  <xsd:complexType>
   <xsd:simpleContent>
    <xsd:extension base="xsd:float">
     <xsd:attribute name="units" type="xsd:string"/>
    </xsd:extension>
   </xsd:simpleContent>
  </xsd:complexType>
 </xsd:element>
</xsd:schema>

基于前面的 XML 架构文档生成的 C# 类。

[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://example.org/")]
[System.Xml.Serialization.XmlRootAttribute(Namespace="http://example.org/", IsNullable=false)]
public class Distance {
        
    [System.Xml.Serialization.XmlAttributeAttribute()]
    public string units;
        
    [System.Xml.Serialization.XmlTextAttribute()]
    public System.Single Value;
}

基于通过前面的 C# 源代码编译得到的程序集生成的 XML 架构元素和复杂类型。

<xs:element name="Distance" type="tns:Distance" />
<xs:complexType name="Distance">
  <xs:simpleContent>
    <xs:extension base="xs:float">
      <xs:attribute name="units" type="xs:string" />
    </xs:extension>
  </xs:simpleContent>
</xs:complexType>

可能的特性 绑定支持

id

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

可能的父元素:<complexType>

可能的子元素:<annotation><extension><restriction>

另请参见

参考

XmlSchemaSimpleContent