Freigeben über


Bindungsunterstützung für das all-Element

.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 das Feature 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;
}

Aus einer Assembly, die aus der vorherigen C#-Quelle kompiliert wurde, generierter komplexer XML-Schematyp:

<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 Dienstprogramm 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 1 gültig. Xsd.exe gibt bei einem ungültigen Wert eine Fehlermeldung aus.

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>

Footer image

Copyright © 2007 by Microsoft Corporation. Alle Rechte vorbehalten.