Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 在两个同名XSD组之间进行选择_.net_Xml_Xsd_Xsd 1.0 - Fatal编程技术网

.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>

您的国际元素不应该包括国家/地区吗?