2011-09-02 66 views
4

我在遠程xsd文件上使用了xsd.exe來生成一些C#類定義。一類定義爲.NET XmlSerializer和小數點

<xs:element name="amount"> 
    <xs:simpleType> 
     <xs:restriction base="xs:decimal"> 
      <xs:fractionDigits value="2"/> 
     </xs:restriction> 
    </xs:simpleType> 
</xs:element> 

當我嘗試反序列化的XML文件,我得到的錯誤:

There is an error in XML document (30, 12). ---> System.FormatException: Input string was not in a correct format. 

這似乎只當有作爲分組分隔逗號發生(即87000) 。如果我經歷並刪除逗號,只要出現錯誤,反序列化就可以正常工作。

是否有一些修改我可以讓xsd允許逗號分組?或者更好的方式來允許我的代碼?嘗試用逗號分析我的代碼中的小數點後效果不錯,它只是不喜歡它在xml文件中。

回答

7

「87,000」與xs:decimal類型不匹配。

沒有允許使用逗號的XSD類型。

1

該數據類型的定義對此數據類型允許的數字大小沒有限制。除非您的表單處理準備處理數千位數字(或甚至更長)的數字,否則您應該對允許的上限和下限使用限制,並且小數點後的數字位數爲