XSD-如何添加两个';参考';同一元素
我一直在试图形成这个XSD,有人可以帮助请 我有一个“国家”元素,如下所示:XSD-如何添加两个';参考';同一元素,xsd,element,ref,Xsd,Element,Ref,我一直在试图形成这个XSD,有人可以帮助请 我有一个“国家”元素,如下所示: <xs:element name="country"> <xs:complexType> <xs:sequence> <xs:element name="id" type="xs:long" minOccurs="0" /> <xs:element name="isoCode" type="xs
<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>
不能引用元素并为该引用指定不同的标记名。相反,您要做的是为该元素定义内容模型(复杂类型可以),并在不同名称的标记下重用该模型
<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>