.net 在两个同名XSD组之间进行选择
我有一个模式,需要允许两组元素中的一组出现一次或多次:.net 在两个同名XSD组之间进行选择,.net,xml,xsd,xsd-1.0,.net,Xml,Xsd,Xsd 1.0,我有一个模式,需要允许两组元素中的一组出现一次或多次: <xs:element name="Parent" maxOccurs="99"> <xs:complexType> <xs:choice> <xs:sequence> <xs:element name="Address" type="xs:string" /> <xs:element name="City" type=
<xs:element name="Parent" maxOccurs="99">
<xs:complexType>
<xs:choice>
<xs:sequence>
<xs:element name="Address" type="xs:string" />
<xs:element name="City" type="xs:string" />
<xs:element name="State" type="xs:string" />
<xs:element name="Zip" type="xs:string" />
</xs:sequence>
<xs:sequence>
<xs:element name="Address" type="xs:string" />
<xs:element name="State" type="xs:string" />
<xs:element name="Zip" type="xs:string" />
<xs:element name="Country" type="xs:string" />
</xs:sequence>
</xs:choice>
</xs:complexType>
</xs:element>
但验证似乎总是发生在第一个选择(它会说缺少元素城市)。我怎样才能做到这一点?我正在使用.NET XSD 1.0,无法更改XML。这很有效。我将暂时不回答这篇文章,以防有人想提供更好的解决方案或进一步阐述
<xs:group name="SharedElements">
<xs:sequence>
<xs:element name="Address" type="xs:string" />
</xs:sequence>
</xs:group>
<xs:group name="NationalElements">
<xs:sequence>
<xs:element name="city" type="xs:string" />
<xs:element name="State" type="xs:string" />
<xs:element name="Zip" type="xs:string" />
</xs:sequence>
</xs:group>
<xs:group name="InternationalElements">
<xs:sequence>
<xs:element name="State" type="xs:string" />
<xs:element name="Zip" type="xs:string" />
<xs:element name="Country" type="xs:string" />
</xs:sequence>
</xs:group>
<xs:element name="Parent" maxOccurs="99">
<xs:complexType>
<xs:sequence>
<xs:group ref="SharedElements" />
<xs:choice>
<xs:group ref="NationalElements" />
<xs:group ref="InternationalElements" />
</xs:choice>
</xs:sequence>
</xs:complexType>
</xs:element>
您的国际元素不应该包括国家/地区吗?