1
我有一個名爲SafetyTiming的複雜類型,它有2個元素值和餘量。價值和保證金都是基於一種稱爲Timing的簡單類型。更改複雜類型內的類型的最小限制
<xs:simpleType name="Timing">
<xs:restriction base="xs:unsignedInt">
<xs:minInclusive value="0" />
<xs:maxInclusive value="999" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="SafetyTiming">
<xs:sequence>
<xs:element name="Value" type="Timing" minOccurs="1" maxOccurs="1" />
<xs:element name="Margin" type="Timing" minOccurs="1" maxOccurs="1" />
</xs:sequence>
</xs:complexType>
<xs:element name="SafetyTimings">
<xs:complexType>
<xs:all>
<xs:element name="A" type="SafetyTiming" minOccurs="1" maxOccurs="1" />
<xs:element name="B" type="SafetyTiming" minOccurs="1" maxOccurs="1" />
<xs:element name="C" type="SafetyTiming" minOccurs="1" maxOccurs="1" />
<xs:element name="D" type="SafetyTiming" minOccurs="1" maxOccurs="1" />
</xs:all>
</xs:complexType>
</xs:element>
這是細直到我發現,元件A和B必須爲的simpleType「值」 a最小值爲0,,C和d的最小的1
如何可以完美地解決這個?
我試過以下,但我認爲它看起來相當混亂,我不知道是否有更好的解決方案。
<!--Safety timing type containing the timing value (minimum 0) and the value margin-->
<xs:complexType name="SafetyTiming_min0">
<xs:sequence>
<xs:element name="Value" type="Timing" minOccurs="1" maxOccurs="1" />
<xs:element name="Margin" type="Timing" minOccurs="1" maxOccurs="1" />
</xs:sequence>
</xs:complexType>
<!--Safety timing type containing the timing value (minimum 1) and the value margin-->
<xs:complexType name="SafetyTiming_min1">
<xs:sequence>
<xs:element name="Value" minOccurs="1" maxOccurs="1">
<xs:simpleType>
<xs:restriction base="Timing">
<xs:minInclusive value="1" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Margin" type="Timing" minOccurs="1" maxOccurs="1" />
</xs:sequence>
</xs:complexType>
沒錯,就是這樣做的另一種方式。我只是希望沒有創建另一個定時或SafetyTiming對象的方法。就像直接向xs:元素C和D添加新的限制一樣。 –