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