Поддержка привязки элемента 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>