visual studio online from convertir convert clase c# .net xsd xsd.exe

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 el xs: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 ?