Condividi tramite


Supporto per l'associazione all'attributo Nillable

Questo argomento è specifico di una tecnologia legacy. Servizi Web XML e client di servizi Web XML devono essere creati attualmente tramite Windows Communication Foundation.

In .NET Framework è incluso un supporto parziale per l'associazione all'attributo nillable.

Descrizione

Quando l'attributo nillable è impostato su true in una dichiarazione <element>, consente la visualizzazione di un attributo xsi:nil in un elemento conforme in un documento di istanza XML. Il prefisso xsi viene generalmente utilizzato per lo spazio dei nomi dell'istanza XML Schema, http://www.w3.org/2001/XMLSchema-instance.

Il valore true per l'attributo xsi:nil in un elemento XML specifica in modo esplicito che l'elemento non dispone di contenuto, sia esso sotto forma di elementi figlio o testo del corpo. La classe XmlSerializer considera il valore true per l'attributo nil equivalente a un riferimento null Nothing in Visual Basic. Vedere l'attributo xsi:nil per informazioni sulle modalità con cui la classe XmlSerializer serializza e deserializza l'attributo nil. Sono compresi anche casi particolari.

Se un elemento è dichiarato con nillable="false" o nessun attributo nillable, un attributo nil non potrà essere visualizzato in un elemento di istanza corrispondente, indipendentemente dal rispettivo valore.

Generazione dell'attributo nillable dal codice

Durante la generazione di un documento XML Schema da un set di classi di un assembly, Xsd.exe crea un attributo nillable per un membro di un tipo di valore se il tipo è nullable. Ciò accade in quanto i tipi di valore possono essere impostati su un riferimento null (Nothing).

Per un oggetto di un tipo di riferimento, Xsd.exe controlla il valore della proprietà IsNullable di determinati attributi relativi a XML. Se la proprietà IsNullable è impostata su un valore true, Xsd.exe crea un attributo nillable e ne imposta il valore su true. La proprietà IsNullable viene utilizzata da determinate classi di attributi relative a XML. La proprietà viene visualizzata nel modo seguente:

Vedere l'esempio seguente:

[System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
public string NameNullable;

Da questo codice Xsd.exe genera la dichiarazione dell'elemento XSD seguente:

<xs:element minOccurs="1" maxOccurs="1" name="NameNullable" nillable="true" type="xs:string" />

Se la proprietà IsNullable è impostata su true e in fase di esecuzione un oggetto applicabile è stato impostato su un riferimento null (Nothing), la classe XmlSerializer genera un attributo xsi:nil con valore true.

La proprietà IsNullable deve essere impostata su true per un attributo applicato a un tipo di valore nullable.

Per i tipi di riferimento, il valore della proprietà IsNullable determina anche il valore dell'attributo <minOccurs> dell'elemento element. Il valore true per IsNullable produce un valore minOccurs pari a 1. In caso contrario, il valore sarà 0. Vedere l'attributo minOccurs.

Xsd.exe genera inoltre un'impostazione nillable="true" in una dichiarazione <element> in altre circostanze specifiche quando una proprietà IsNullable non è esplicitamente impostata su true.

Generazione di codice dall'attributo nillable

Quando rileva un'impostazione nillable="true", Xsd.exe genera un parametro IsNullable=true per l'attributo correlato a XML appropriato che viene applicato alla classe o al membro generato. Per i tipi di valore, verranno generati tipi nullable.

Elementi contenitore possibili: <element>

Vedere anche

Riferimento

Supporto dell'associazione all'attributo Xsi:nil
System.Xml.Schema.XmlSchemaElement.IsNillable