He estado usando xsd.exe para generar una clase para deserializar XML en. que tienen un valor decimal en el xsd fuente que no es necesaria:Valor anulable con la clase generada xsd.exe
<xs:attribute name="Balance" type="xs:decimal" use="optional" />
La clase resultante de xsd genera el siguiente código:
private decimal balanceField;
[System.Xml.Serialization.XmlAttributeAttribute()]
public decimal Balance {
get {
return this.balanceField;
}
set {
this.balanceField = value;
}
}
Qué observo no es anulable.
¿Cómo vez generan el campo como anulable, se ilustra de la siguiente manera:
private decimal? balanceField;
[System.Xml.Serialization.XmlAttributeAttribute()]
public decimal? Balance {
get {
return this.balanceField;
}
set {
this.balanceField = value;
}
}
Eso solo funciona para elementos, no para atributos como la pregunta original. –