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

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

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

При создании исходного кода из документа схемы XML программа Xsd.exe не обрабатывает элемент <annotation> и его содержимое.

Объяснение

При создании исходного кода из документа схемы XML программа Xsd.exe не обрабатывает элемент <annotation> и его содержимое. Соответственно, дочерние элементы <appinfo> и <documentation> также не поддерживаются.

Единственный случай, в котором программа Xsd.exe использует элемент <annotation>, — это соответствие между двумя следующими сущностями:

  • атрибутом типа XmlNamespaceDeclarationsAttribute, примененным для поля или свойства типа XmlSerializerNamespaces;

  • элементом XML .NET Framework с именем <keepNamespaceDeclarations>, содержащимся в элементе <appinfo>.

Объект XmlSerializerNamespaces используется для хранения ряда сопоставлений между префиксами и пространствами имен, которые они представляют. Текст элемента annotation/appinfo/keepNamespaceDeclarations — это имя поля или свойства XmlSerializerNamespaces. Это преобразование выполняется в обе стороны — из XSD-файла в код и наоборот, что позволяет управлять префиксами пространства имен.

Example

Входной класс C#:

public class MyClass {
    [XmlAttribute]
    public string name;
    
    public string xpath;
    
    [XmlNamespaceDeclarationsAttribute]
    public XmlSerializerNamespaces xmlns;
}

Документ схемы XML, созданный из сборки, скомпилированной на основе предыдущего исходного кода C#:

<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="MyClass" nillable="true" type="MyClass" />
  <xs:complexType name="MyClass">
    <xs:annotation>
      <xs:appinfo>
        <keepNamespaceDeclarations>xmlns</keepNamespaceDeclarations>
      </xs:appinfo>
    </xs:annotation>
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="xpath" type="xs:string" />
    </xs:sequence>
    <xs:attribute name="name" type="xs:string" />
  </xs:complexType>
</xs:schema>

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

Возможные атрибуты Поддержка привязки

id

Программа Xsd.exe игнорирует атрибут id, который предназначен для обеспечения уникального идентификатора.

Возможные родительские элементы: множество различных элементов

Возможные дочерние элементы: <appinfo>, <documentation>

См. также

Справочник

XmlSchemaAnnotation
XmlSchemaAnnotation