2014-01-24 38 views
0

我有以下xsd。請建議我如何改進它。更好的方法來編寫xsd元素可重用與其他複雜的元素?

<xsd:element name="getFirstTableRequest" type="tns:GetFirstTableRequest"/> 
<xsd:element name="getSecondTableRequest" type="tns:GetSecondTableRequest"/> 
<xsd:element name="getThirdTableRequest" type="tns:GetThirdTableRequest"/> 
<xsd:element name="getFourthTableRequest" type="tns:GetFourthTableRequest"/> 

<xsd:complexType name="Base" abstract="true"> 
    <xsd:sequence> 
     <xsd:element name="id" type="xsd:string" minOccurs="1" maxOccurs="1" /> 
    </xsd:sequence> 
    </xsd:complexType> 

    <xsd:complexType name="GetFirstTableRequest"> 
    <xsd:complexContent> 
     <xsd:extension base="tns:Base"> 
     </xsd:extension> 
    </xsd:complexContent> 
    </xsd:complexType> 

    <xsd:complexType name="GetSecondTableRequest"> 
    <xsd:complexContent> 
     <xsd:extension base="tns:Base"> 
     </xsd:extension> 
    </xsd:complexContent> 
    </xsd:complexType> 

    <xsd:complexType name="GetThirdTableRequest"> 
    <xsd:complexContent> 
     <xsd:extension base="tns:Base"> 
     </xsd:extension> 
    </xsd:complexContent> 
    </xsd:complexType> 

    <xsd:complexType name="GetFourthTableRequest"> 
    <xsd:complexContent> 
     <xsd:extension base="tns:Base"> 
     </xsd:extension> 
    </xsd:complexContent> 
    </xsd:complexType> 

有沒有什麼最好的方法來改善上面的xsd? 我的意思是有任何範圍重構上面XSD

謝謝!

回答

0

假設您的擴展類型不添加任何新的屬性或元素。您可以執行以下操作:

  1. 消除所有子類型。
  2. Base刪除abstract="true"
  3. 然後將每個根元素更改爲type="tns:Base"