Freigeben über


Bindungsunterstützung für das appinfo-Element

Dieses Thema bezieht sich auf eine veraltete Technologie. XML-Webdienste und XML-Webdienstclients sollten nun mithilfe der folgenden Technologie erstellt werden: Windows Communication Foundation.

.NET Framework stellt keine Bindungsunterstützung für das <appinfo>-Element bereit.

Beim Generieren von Quellcode aus einem XML-Schemadokument ignoriert Xsd.exe das <appinfo>-Element und dessen Inhalt.

Erklärung

Beim Generieren von Quellcode aus einem XML-Schemadokument ignoriert Xsd.exe das <appinfo>-Element und dessen Inhalt. Das Gleiche gilt für das übergeordnete Element des <appinfo>-Elements, d. h. für <annotation>.

Eine Ausnahme ist die Korrespondenz zwischen den folgenden zwei Entitäten:

  • Ein Attribut des Typs XmlNamespaceDeclarationsAttribute, das auf ein Feld oder eine Eigenschaft des Typs XmlSerializerNamespaces angewendet wurde.

  • Ein für .NET Framework spezifisches XML-Element mit dem Namen <keepNamespaceDeclarations>, das im <appinfo>-Element enthalten ist.

Ein XmlSerializerNamespaces-Objekt wird verwendet, um einen Satz an Zuordnungen zwischen Namespaces und den sie darstellenden Päfixen zu speichern. Der Text des annotation/appinfo/keepNamespaceDeclarations-Elements ist der Name des XmlSerializerNamespaces-Felds oder der entsprechenden Eigenschaft. Diese Übersetzung erfolgt in beide Richtungen – von der XSD-Datei in Code und umgekehrt –, sodass Namespacepräfixe gesteuert werden können.

Beispiel

Eingabe C#-Klasse:

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

Ein XML-Schemadokument, das aus einer Assembly generiert wurde, die ihrerseits aus dem vorhergehenden C#-Quellcode kompiliert wurde.

<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>

Die C#-Klasse, die aus dem vorhergehenden XML-Schemadokument generiert wurde, ist identisch mit der ursprünglichen C#-Klasse, aus der das XML-Schema generiert worden war.

Mögliche Attribute Bindungsunterstützung

source

Da .NET Framework das <appinfo>-Element nicht bindet, bindet es auch die source-Attribute des Elements nicht.

Mögliche übergeordnete Elemente: <annotation>

Mögliche untergeordnete Elemente: unbegrenzt

Siehe auch

Verweis

XmlSchemaAppInfo