Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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 partielle Bindungsunterstützung für das nillable-Attribut bereit.
Erklärung
Wenn das nillable-Attribut in einer <element>-Deklaration auf true festgelegt ist, kann ein xsi:nil-Attribut in einem entsprechenden Element in einem XML-Instanzendokument angezeigt werden. (Das Präfix xsi wird im Allgemeinen für den Namespace der XML-Schemainstanz http://www.w3.org/2001/XMLSchema-instance verwendet.)
Der Wert true für das xsi:nil-Attribut in einem XML-Element gibt ausdrücklich an, dass das Element keinen Inhalt hat, d. h. weder untergeordnete Elemente noch Textkörper. Die XmlSerializer-Klasse setzt einen true-Wert für das nil-Attribut mit einem NULL-Verweis (Nothing in Visual Basic) gleich. Informationen dazu, wie die XmlSerializer-Klasse das nil-Attribut serialisiert und deserialisiert, einschließlich spezieller Fälle, finden Sie in den Ausführungen zum xsi:nil-Attribut.
Wenn ein Element mit nillable="false" oder keinem nillable-Attribut deklariert ist, kann ein nil-Attribut unabhängig vom zugehörigen Wert in einem entsprechenden Instanzelement nicht gültig angezeigt werden.
Generieren des nillable-Attributs aus dem Code
Beim Generieren eines XML-Schemadokuments aus einer Reihe von Klassen in einer Assembly erstellt Xsd.exe ein nillable-Attribut für einen Member eines Werttyps, wenn der Typ auf NULL festgelegt werden kann. Dies geschieht, weil Werttypen auf einen NULL-Verweis (Nothing) festgelegt werden können.
Bei einem Objekt eines Verweistyps überprüft Xsd.exe den Wert der IsNullable-Eigenschaft bestimmter XML-spezifischer Attribute. Wenn die IsNullable-Eigenschaft auf den Wert true festgelegt ist, erstellt Xsd.exe ein nillable-Attribut und legt dessen Wert auf true fest. Die IsNullable-Eigenschaft wird in bestimmten XML-Attributklassen verwendet. Die Eigenschaft wird folgendermaßen dargestellt:
Beispiel:
[System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
public string NameNullable;
Aus diesem Code generiert Xsd.exe die folgende XSD-Elementdeklaration:
<xs:element minOccurs="1" maxOccurs="1" name="NameNullable" nillable="true" type="xs:string" />
Wenn die IsNullable-Eigenschaft auf true festgelegt ist und ein anwendbares Objekt zur Laufzeit auf einen NULL-Verweis (Nothing) festgelegt wurde, generiert die XmlSerializer-Klasse ein xsi:nil-Attribut mit dem Wert true.
Die IsNullable-Eigenschaft muss für ein Attribut, das auf einen auf NULL festlegbaren Typ angewendet wird, auf true festgelegt werden.
Bei Verweistypen wird mit dem Wert der IsNullable-Eigenschaft zudem der Wert des minOccurs-Attributs eines <element>-Elements festgelegt. Der Wert true für IsNullable erstellt den Wert 1 für minOccurs, andernfalls ist der Wert 0. Weitere Informationen finden Sie in den Ausführungen zum minOccurs-Attribut.
Xsd.exe generiert darüber hinaus unter bestimmten anderen Umständen die nillable="true"-Einstellung in einer <element>-Deklaration, wenn eine IsNullable-Eigenschaft nicht ausdrücklich auf true festgelegt ist.
Generieren von Code aus dem nillable-Attribut
Beim Auftreten einer nillable="true"-Einstellung generiert Xsd.exe einen IsNullable=true-Parameter für das entsprechende XML-Attribut, das auf die generierte Klasse oder den generierten Member angewendet wird. Für Werttypen werden auf NULL festlegbare Typen generiert.
Mögliche enthaltene Elemente: <element>
Siehe auch
Verweis
Bindungsunterstützung für das xsi:nil-Attribut
System.Xml.Schema.XmlSchemaElement.IsNillable