online - xsd to class c# visual studio 2017
¿Por qué xsd.exe genera propiedades de cadena para xs: integer? (1)
Este comportamiento es por diseño :
El tipo
xs:integer
se especifica como un número sin límite superior o inferior en su tamaño. Por este motivo, ni la serialización XML ni la validación se asignan al tipo System.Int32 . En su lugar, la serialización XML asigna elxs:integer
a una cadena, mientras que la validación lo asigna al tipo decimal que es mucho más grande que cualquiera de los tipos de enteros en .NET Framework
Use xs:int
, que es un entero de 32 bits con signo, para que Xsd.exe lo Xsd.exe a un System.Int32 :
<xs:element name="InvoiceNo" type="xs:int" />
Aquí hay una lista detallada de los tipos de datos definidos en el estándar de definición de esquema XML.
Cuando genero una clase ac # desde 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 como un int en lugar de una cadena ?