我正在设计一个新的XSD以捕捉来自业务伙伴的点信息。对于每笔交易,合作伙伴必须提供至少一种积分类型的积分值。我有以下几点:XSD设计 - 一个或多个规则
<xs:element name="Points">
<xs:complexType>
<xs:sequence>
<xs:element name="SKUPointsQty" type="xs:int" minOccurs="0"/>
<xs:element name="WelcomePointsQty" type="xs:int" minOccurs="0"/>
<xs:element name="ManualPointsQty" type="xs:int" minOccurs="0"/>
<xs:element name="GreenPointQty" type="xs:int" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
的业务规则:
- 事务必须由一个或多个点类型的提供点
- 交易不能提供相同的多个实例点类型
我到目前为止是不理想的,因为它可能会提供一个没有任何点的XML实例。我不能使用选择元素,因为它必须可以为一个XML实例提供更多的一个点类型元素。一次交易不得重复相同的积分类型。
是否可以在XSD的设计中强制执行此规则?
我有Neil Bradley出色的XML Schema Companion的副本。我无法在那里找到答案,所以我想这不可能,但认为我会分享这个难题!
谢谢
Rob。