0

我一直在尝试形成这个XSD,有人可以帮忙吗...

我有一个元素“国家”,如下所示:

<xs:element name="country">
    <xs:complexType>
        <xs:sequence>
            <xs:element name="id" type="xs:long" minOccurs="0" />
            <xs:element name="isoCode" type="xs:string" minOccurs="0" />
            <xs:element name="currencyCode" type="xs:string" minOccurs="0" />
        </xs:sequence>
    </xs:complexType>
</xs:element>

现在,我需要用两个元素“源国家”和“目标国家”来形成 XSD,它们都应该引用“国家”。有人可以帮我形成那个XSD。

<xs:element name="crossCountries">
    <xs:complexType>
        <xs:sequence>
            <xs:element name="id" type="xs:long" minOccurs="0" />

            <xs:element ref="country" />   <!-- Source Country -->

            <xs:element ref="country" />   <!-- Destination Country -->

        </xs:sequence>
    </xs:complexType>
</xs:element>
4

1 回答 1

1

您不能引用元素并为该引用分配不同的标记名称。相反,您要做的是为该元素定义内容模型(复杂类型会这样做)并在不同命名的标签下重用它。

<xs:complexType name="country">
    <xs:sequence>
        <xs:element name="id" type="xs:long" minOccurs="0" />
        <xs:element name="isoCode" type="xs:string" minOccurs="0" />
        <xs:element name="currencyCode" type="xs:string" minOccurs="0" />
    </xs:sequence>
</xs:complexType>

然后:

<xs:element name="crossCountries">
  <xs:complexType>
    <xs:sequence>
        <xs:element name="id" type="xs:long" minOccurs="0" />

        <xs:element name="sourceCountry" type="country" />   <!-- Source Country -->

        <xs:element name="destinationCountry" type="country" />   <!-- Destination Country -->

    </xs:sequence>
  </xs:complexType>
</xs:element>
于 2013-04-03T03:28:44.183 回答