Questo problema fa parte del capitolo "perchè ASP.NET WS non valida a run-time in base allo schema i messaggi SOAP entranti ?". Vengo al dunque. Se volete usare una data formattata con lo standard W3C gYearMonth potete decorare la proprietà, campo o attributo definendo il DataType di tipo gYearMonth..

Peccato che questi tipo XSD sia mappato su System.String e non System.DateTime:

[WebMethod()]
public string GetYearMonth([XmlElement(DataType="gYearMonth")] string d)
{
 return d;
}

Quindi, posso spedire sia 2003-12 sia abc e funziona alla grande ! Mi suona molto strano...