我有點重複這個問題位第一次它被錯誤地問。XSD和多態性
我有這樣的:
<xsd:complexType name="A">
<xsd:sequence>
<xsd:element name="options" type="options"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="B">
<xsd:complexContent>
<xsd:element name="options" type="ex_options"/>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="options">
<xsd:sequence>
...some options
</xsd:sequence>
</xsd:element>
<xsd:complexType name="ex_options">
<xsd:complexContent>
<xsd:extension base="options">
<xsd:sequence>
...some more options
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:element>
所以基本上我有A類有一個內部類的選項 B類從A類繼承,我想B.options從A.options繼承這樣,當我們做web服務我們只需要傳遞一個,當我們調用getOptions時,它將返回正確的對象B.options。目前,使用xsd的方式,我得到一個錯誤,說明模型組中出現多個具有不同類型名稱選項的元素。錯誤是B類型的。
你的榜樣XSD不是格式良好的(不包括...某些選項條目)。我認爲這是你嘗試過的一個例子。閱讀下面的回覆,我現在就明白了。你看起來想要的是兩個類,其中B擴展了A,而B的內容擴展了A的內容。 – 2008-10-16 16:48:19