Ответ 1
Это поведение по дизайну:
Тип
xs:integer
указывается как число без верхнего или нижнего связанный по его размеру. По этой причине ни сериализация XML, ни validation сопоставьте его с типом System.Int32. Вместо этого, сериализация XML отображаетxs:integer
в строку, а валидация сопоставляет ее с Десятичный тип, который намного больше любого из целочисленных типов в .NET Framework
Используйте xs:int
, который представляет собой подписанное 32-разрядное целое число, чтобы Xsd.exe сопоставить его с System.Int32:
<xs:element name="InvoiceNo" type="xs:int" />
Здесь подробный список типов данных, определенных в стандарте определения схемы XML.