¿Por qué xsd.exe genera propiedad de cadena para xs: integer?

Cuando genero una clase C # a partir de un esquema xsd con xsd.exe, encuentro este comportamiento un poco extraño.

Mi elemento:

<xs:element name="InvoiceNo" type="xs:integer"/>

se genera para:

[System.Xml.Serialization.XmlElementAttribute(DataType="integer", Order=5)]
public string InvoiceNo
{
   ...
}

Por qué esa propiedad no se genera comoEn en lugar decuerd?

Respuestas a la pregunta(2)

Su respuesta a la pregunta