У меня есть набор элементов, которые в целом должны быть уникальными, и я не знаю, как
чтобы проверить это в моем xsd.
<xs:element name="PLUGIN_PRIMAR_KEY">
<xs:complexType>
<xs:sequence>
<xs:element name="IID_INTERFACE_ID">
<xs:complexType>
<xs:sequence>
<xs:element name="DATA1"/>
<xs:element name="DATA2"/>
<xs:element name="DATA3"/>
<xs:element name="DATA4">
<xs:complexType>
<xs:sequence>
<xs:element name="BYTE0"/>
<xs:element name="BYTE1"/>
<xs:element name="BYTE2"/>
<xs:element name="BYTE3"/>
<xs:element name="BYTE4"/>
<xs:element name="BYTE5"/>
<xs:element name="BYTE6"/>
<xs:element name="BYTE7"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="UI64_VERSION"/>
</xs:sequence>
</xs:complexType>
Например, все элементы в "IID_INTERFACE_ID" могут быть одинаковыми,
но если элемент "UI64_VERSION" не совпадает, его следует считать действительным.
Пример ниже недействителен, потому что все внутренние элементы двух разных <PLUGIN_PRIMAR_KEY>
имеют одинаковые значения:
<PLUGIN_PRIMAR_KEY>
<IID_INTERFACE_ID>
<DATA1>29e4223c</DATA1>
<DATA2>2d64</DATA2>
<DATA3>45b4</DATA3>
<DATA4>
<BYTE0>94</BYTE0>
<BYTE1>d9</BYTE1>
<BYTE2>bd</BYTE2>
<BYTE3>fa</BYTE3>
<BYTE4>fd</BYTE4>
<BYTE5>e3</BYTE5>
<BYTE6>b1</BYTE6>
<BYTE7>07</BYTE7>
</DATA4>
</IID_INTERFACE_ID>
<UI64_VERSION>0000000000000000</UI64_VERSION>
</PLUGIN_PRIMAR_KEY>
<PLUGIN_PRIMAR_KEY>
<IID_INTERFACE_ID>
<DATA1>29e4223c</DATA1>
<DATA2>2d64</DATA2>
<DATA3>45b4</DATA3>
<DATA4>
<BYTE0>94</BYTE0>
<BYTE1>d9</BYTE1>
<BYTE2>bd</BYTE2>
<BYTE3>fa</BYTE3>
<BYTE4>fd</BYTE4>
<BYTE5>e3</BYTE5>
<BYTE6>b1</BYTE6>
<BYTE7>07</BYTE7>
</DATA4>
</IID_INTERFACE_ID>
<UI64_VERSION>0000000000000000</UI64_VERSION>
</PLUGIN_PRIMAR_KEY>
Но если хотя бы один элемент имеет другое значение, оно будет действительным:
<PLUGIN_PRIMAR_KEY>
<IID_INTERFACE_ID>
<DATA1>29e4223c</DATA1>
<DATA2>2d64</DATA2>
<DATA3>45b4</DATA3>
<DATA4>
<BYTE0>94</BYTE0>
<BYTE1>d9</BYTE1>
<BYTE2>bd</BYTE2>
<BYTE3>fa</BYTE3>
<BYTE4>fd</BYTE4>
<BYTE5>e3</BYTE5>
<BYTE6>b1</BYTE6>
<BYTE7>07</BYTE7>
</DATA4>
</IID_INTERFACE_ID>
<UI64_VERSION>0000000000000000</UI64_VERSION>
</PLUGIN_PRIMAR_KEY>
<PLUGIN_PRIMAR_KEY>
<IID_INTERFACE_ID>
<DATA1>29e4223c</DATA1>
<DATA2>2d64</DATA2>
<DATA3>45b4</DATA3>
<DATA4>
<BYTE0>94</BYTE0>
<BYTE1>d9</BYTE1>
<BYTE2>bd</BYTE2>
<BYTE3>fa</BYTE3>
<BYTE4>fd</BYTE4>
<BYTE5>e3</BYTE5>
<BYTE6>b1</BYTE6>
<BYTE7>07</BYTE7>
</DATA4>
</IID_INTERFACE_ID>
<UI64_VERSION>0000000000000001</UI64_VERSION>
</PLUGIN_PRIMAR_KEY>
Элемент PLUGIN_PRIMAR_KEY встроен в некоторый элемент ohter, который содержит один набор данных.
Спасибо за помощь заранее,
TinTin