Bindungsunterstützung für das extension-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 Bindungsunterstützung für das <extension>-Element bereit.
Das Tool Xsd.exe generiert nur für komplexen Inhalt eine Basisklasse entsprechend dem Wert des base-Attributs, nicht für einfachen Inhalt.
Erklärung
Die XML-Schemadefinitionssprache ermöglicht das Ableiten neuer Datentypen aus Basistypen über Erweiterung und Beschränkung. Erweiterung wird immer verwendet, um komplexe Typen abzuleiten. Die Erweiterung kann auf einfachem Inhalt oder komplexem Inhalt basieren. Dies wird wie folgt unterschieden:
Einfacher Inhalt: verwendet den XPath
complexType/simpleContent/extension
. Der abgeleitete komplexe Typ enthält keine untergeordneten Elemente, nur einfachen Inhalt. Dabei kann es sich um Attribute, Textkörper oder beides handeln.Komplexer Inhalt: verwendet den XPath
complexType/complexContent/extension
. Sowohl komplexe abgeleitete Typen als auch komplexe Basistypen enthalten untergeordnete Elemente. Sie können auch Attribute und Textkörper enthalten.
XML-Schema-Typerweiterungen werden immer vollständig durch Klassendefinitionen in .NET Framework ausgedrückt. Wie Xsd.exe Quellcode aus einem XML-Schemadokument generiert, hängt wie folgt davon ab, ob die Erweiterung auf einfachem Inhalt oder komplexem Inhalt beruht:
Einfacher Inhalt: Xsd.exe erzeugt eine neue Klasse mit einem öffentlichen Feld, dessen Typ dem Basisdatentyp entspricht, der im base-Attribut des <extension>-Elements angegeben ist.
Komplexer Inhalt: Xsd.exe erzeugt eine Klasse, deren Typ dem Basisdatentyp entspricht, der im base-Attribut des <extension>-Elements angegeben ist, und eine Klasse für den abgeleiteten Datentyp. Die letztere Klasse erbt von der ersteren, wobei eine Klassendeklaration wie die folgende verwendet wird:
public class DerivedClass : BaseClass
.
Xsd.exe behält bei einer Round-Trip-Übersetzung aus einem XML-Schema in Klassen und zurück in ein neues XML-Schemadokument beide Arten von Erweiterungen bei.
Ein Beispiel für einfache Inhaltserweiterung finden Sie in den Ausführungen zum <simpleContent>-Element.
Mögliche Attribute | Bindungsunterstützung |
---|---|
base |
Das <extension>-Element erfordert ein base-Attribut, dessen Wert der qualifizierte Name des Basisdatentyps ist. Für einfache Inhaltserweiterung erzeugt das Tool Xsd.exe ein öffentliches Feld aus dem Wert des base-Attributs. Für komplexe Inhaltserweiterung erzeugt Xsd.exe eine Basisklasse aus dem base-Wert. Entsprechende Informationen finden Sie weiter oben. |
id |
Das Hilfsprogramm Xsd.exe ignoriert das id-Attribut, mit dem ein eindeutiger Bezeichner bereitgestellt werden soll. |
Mögliche übergeordnete Elemente: <complexContent>, <simpleContent>
Mögliche untergeordnete Elemente: <all>, <annotation>, <anyAttribute>, <attribute>, <attributeGroup>, <choice>, <group>, <sequence>
Siehe auch
Verweis
XmlSchemaComplexContentExtension
XmlSchemaSimpleContentExtension