Поддержка привязки элемента SimpleContent

Этот раздел посвящен технологии прежних версий. Веб-службы XML и клиенты веб-служб XML должны создаваться с использованием Windows Communication Foundation.

Платформа .NET Framework обеспечивает частичную поддержку привязки для элемента <simpleContent>.

Расширение простого содержимого всегда полностью выражается через определения классов в платформе .NET Framework. Программа Xsd.exe не распознает ограничение простого содержимого.

Объяснение

В языке определения схемы XML элемент <simpleContent> используется для определения сложного типа, не содержащего дочерние элементы. Сложный тип, имеющий простое содержимое (атрибуты, основной текст или и то и другое), является производным от базового типа через расширение или ограничение с помощью элемента <extension> или <restriction>, расположенного под элементом <simpleContent>.

При создании исходного кода из документа схемы XML программа Xsd.exe создает открытое поле, тип которого соответствует базовому типу, заданному атрибутом base элемента <extension>. Сведения о привязках между встроенными простыми типами схемы XML и типами .NET Framework см. в разделе «Поддержка типов данных между типами схемы XML (XSD) и .NET Framework» руководства разработчика .NET Framework.

Расширение и ограничение простого содержимого представлены в объектной модели схемы классами XmlSchemaSimpleContentExtension и XmlSchemaSimpleContentRestriction (соответственно), а также классом 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>

Класс C#, созданный на основе приведенного выше документа схемы XML.

[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;
}

Сложный тип и элемент схемы XML, созданные из сборки, скомпилированной из приведенного выше исходного кода C#.

<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