如何在小数点后限制为除0之外的数字

问题描述:

我想限制小数点后面的数字,并且只允许数字为零。例如,如果值是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格式的应用程序都会使生活变得非常困难。我的建议是,模式应该总是允许映射到相同基础值的替代词汇表示。但是,当然,如果您试图限制数据以适应现有应用程序的需求,这可能不适用。 –

你非常接近。只要改变

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

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

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

+0

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