Bindungsunterstützung für das all-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 <all>-Element bereit.
Das <all>-Element kann jedoch nicht im Code angegeben werden, sodass es beim Generieren eines XML-Schemadokuments aus einer Reihe von Klassen erstellt wird.
Erklärung
Das <all>-Element kann nicht im Code angegeben werden, sodass es beim Generieren eines XML-Schemadokuments aus einer Reihe von Klassen erstellt wird.
Das <all>-Element enthält eine ungeordnete Gruppierung von Elementen. Jedes untergeordnete Element kann einmal oder überhaupt nicht angezeigt werden.
Beim Generieren von Quellcode aus einem XML-Schemadokument wandelt Xsd.exe jedes untergeordnete Element des <all>-Elements in ein öffentliches Feld um. Die Felder werden in der gleichen Reihenfolge wie die untergeordneten Elemente im XML-Schema angezeigt.
Beim Generieren eines XML-Schemadokuments aus einer Reihe von Klassen in einer Assembly verwendet Xsd.exe ein <sequence>-Element und kein <all>-Element, um die den öffentlichen Feldern entsprechenden untergeordneten Elemente zu gruppieren. Dabei wird davon ausgegangen, dass Elemente eines komplexen Typs vorzugsweise geordnet und nicht ungeordnet angezeigt werden sollen.
Verwenden Sie die Funktion zum Beibehalten der Reihenfolge (der /order-Schalter für Xsd.exe) nicht, wenn Sie Schemas importieren, die ein <all>-Element enthalten.
Beispiel
XML-Schema-Eingabedokument:
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://example.org/" xmlns="http://example.org/" elementFormDefault="qualified">
<xsd:element name="complexInstance" type="MyComplexType"/>
<xsd:element name="field1" type="xsd:string"/>
<xsd:element name="field2" type="xsd:string"/>
<xsd:element name="field3" type="xsd:string"/>
<xsd:complexType name="MyComplexType">
<xsd:all>
<xsd:element ref="field1"/>
<xsd:element ref="field2"/>
<xsd:element ref="field3"/>
</xsd:all>
</xsd:complexType>
</xsd:schema>
Aus dem vorherigen XML-Schemadokument generierte C#-Klasse:
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://example.org/")]
[System.Xml.Serialization.XmlRootAttribute("complexInstance", Namespace="http://example.org/", IsNullable=false)]
public class MyComplexType {
public string field1;
public string field2;
public string field3;
}
Komplexer XML-Schematyp, der aus einer Assembly generiert wurde, deren Kompilierung von der vorhergehenden C#-Quelle ausgeführt wurde:
<xs:complexType name="MyComplexType">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" name="field1" type="xs:string" />
<xs:element minOccurs="0" maxOccurs="1" name="field2" type="xs:string" />
<xs:element minOccurs="0" maxOccurs="1" name="field3" type="xs:string" />
</xs:sequence>
</xs:complexType>
Mögliche Attribute | Bindungsunterstützung |
---|---|
id |
Das Hilfsprogramm Xsd.exe ignoriert das id-Attribut, mit dem ein eindeutiger Bezeichner bereitgestellt werden soll. |
maxOccurs |
Bei dem <all>-Element ist für das maxOccurs-Attribut ausschließlich der Wert Weitere Informationen finden Sie unter dem Bindungsunterstützung für das maxOccurs-Attribut-Attribut. |
minOccurs |
Das Tool Xsd.exe ignoriert das minOccurs-Attribut, wenn es auf das <all>-Element angewendet wird. Weitere Informationen finden Sie in den Ausführungen zum Bindungsunterstützung für das minOccurs-Attribut-Attribut. |
Mögliche übergeordnete Elemente: <complexType>, <extension>, <group>, <restriction>
Mögliche untergeordnete Elemente: <annotation>, <element>