2010-10-04 138 views
3

我想檢查我的XML中的字段是否爲positive double/decimal。 XSD中有一個type="xs:positiveInteger"數據類型,但沒有正的雙精度或小數。有沒有辦法通過定義自定義數據類型或其他方式來實現這一點?如何在xsd中定義自定義數據類型?

回答

4
<xs:element name="data"> 
    <xs:simpleType> 
    <xs:restriction base="xs:float"> 
     <xs:minInclusive value="0"/> 
    </xs:restriction> 
    </xs:simpleType> 
</xs:element> 

我認爲這應該做到這一點。可能有一個更短的方式,我仍然在學習xsd。

+0

我寧願在這種情況下使用base而不是float。 – YoK 2010-10-04 08:48:04

+0

我想說你已經學會了那一點XSD :)。給出原始問題,xs:float或xs:decimal都可以工作。 – 2010-10-04 13:04:41

+0

至少根據http://www.w3schools.com/xml/schema_dtypes_numeric.asp,沒有'float'類型 – 2016-06-16 21:33:36

3

您可以通過定義帶限制的十進制數據類型來實現這一點,如下所示。

<xs:simpleType name="positiveDecimal"> 
    <xs:restriction base="xs:decimal"> 
    <xs:minInclusive value="0"/> 
    </xs:restriction> 
</xs:simpleType>