2010-02-10 46 views
3

我將xsd文件中某些參數的數據類型從字符串更改爲它們的實際類型,在本例中爲double。現在我面臨的問題是,在這裏逗號被用作分隔符,而不是w3(http://www.w3.org/TR/xmlschema-2/#double)定義的點在反序列化(C#,VS2008)期間導致全部錯誤。XML模式/驗證:數據類型雙重的不同分隔符

我的問題:我可以使用w3模式進行驗證,但使用不同分隔符進行雙精度值驗證嗎?

THX對您有所幫助

回答

8

你不能這樣做,如果你想繼續使用XML模式簡單類型。十進制和從它派生的類型被鎖定爲使用句點。正如你所說:the spec here

如果你想使用一個逗號作爲分隔符,你需要定義自己的簡單類型,例如:

<xs:simpleType name="MyDecimal"> 
    <xs:restriction base="xs:string"> 
    <xs:pattern value="\d+(,\d+)?"/> 
    </xs:restriction> 
</xs:simpleType> 

之前,你這樣做,不過,要小心; XML是一種數據存儲格式,不是演示文稿格式。您可能需要考慮是否在加載後或在XSLT轉換過程中對此進行了排序等。

+0

抱歉,直到現在沒有響應,並且提示爲thx。一個自定義的類型可以做到這一點,但正如你所建議的,考慮替代選項可能會更好。 – LLEA 2010-03-01 13:06:22