2017-02-16 21 views
1

我想限制小數點後面的數字,並且只允許數字爲零。例如,如果值是3431.0000,那麼這個值是有效的。但是,如果它的值是3431.1110或3431.1000那麼它是無效的。任何人都可以幫助我如何添加規則來限制我的模式文件中的這種需求?我使用JAXB驗證器來驗證模式,下面是我的模式文件中的代碼片段。如何在小數點後限制爲除0之外的數字

<xs:simpleType name="Decimal8-2"> 
     <xs:restriction base="xs:decimal"> 
     <xs:fractionDigits value="4" /> 
     <xs:minExclusive value="0" /> 
     <xs:pattern value="\d+\.\d{4}" /> 
     </xs:restriction> 
    </xs:simpleType> 
+0

請注意,當您使用模式facet來限制數字類型的詞法空間時,任何必須生成此XML格式的應用程序都會使生活變得非常困難。我的建議是,模式應該總是允許映射到相同基礎值的替代詞彙表示。但是,當然,如果您試圖限制數據以適應現有應用程序的需求,這可能不適用。 –

回答

0

你非常接近。只要改變

<xs:pattern value="\d+\.\d{4}" /> 

<xs:pattern value="\d+\.0{4}" /> 

,以要求所有的小數位數是0

+0

真棒兄弟它工作!非常感謝您指出正確的方向。 – Joe

相關問題