title: better way to write xsd elements reusable with in other complex elements?
body: <p>I have the following xsd. Please suggest me how can I improve it.</p>
  
  <pre><code>&lt;xsd:element name="getFirstTableRequest" type="tns:GetFirstTableRequest"/&gt;
  &lt;xsd:element name="getSecondTableRequest" type="tns:GetSecondTableRequest"/&gt;
  &lt;xsd:element name="getThirdTableRequest" type="tns:GetThirdTableRequest"/&gt;
  &lt;xsd:element name="getFourthTableRequest" type="tns:GetFourthTableRequest"/&gt;
  
  &lt;xsd:complexType name="Base" abstract="true"&gt;
      &lt;xsd:sequence&gt;
          &lt;xsd:element name="id" type="xsd:string" minOccurs="1" maxOccurs="1" /&gt;
      &lt;/xsd:sequence&gt;
    &lt;/xsd:complexType&gt;
  
    &lt;xsd:complexType name="GetFirstTableRequest"&gt;
      &lt;xsd:complexContent&gt;
          &lt;xsd:extension base="tns:Base"&gt;
          &lt;/xsd:extension&gt;
      &lt;/xsd:complexContent&gt;
    &lt;/xsd:complexType&gt;
  
    &lt;xsd:complexType name="GetSecondTableRequest"&gt;
      &lt;xsd:complexContent&gt;
          &lt;xsd:extension base="tns:Base"&gt;
          &lt;/xsd:extension&gt;
      &lt;/xsd:complexContent&gt;
    &lt;/xsd:complexType&gt;
  
    &lt;xsd:complexType name="GetThirdTableRequest"&gt;
      &lt;xsd:complexContent&gt;
          &lt;xsd:extension base="tns:Base"&gt;
          &lt;/xsd:extension&gt;
      &lt;/xsd:complexContent&gt;
    &lt;/xsd:complexType&gt;
  
    &lt;xsd:complexType name="GetFourthTableRequest"&gt;
      &lt;xsd:complexContent&gt;
          &lt;xsd:extension base="tns:Base"&gt;
          &lt;/xsd:extension&gt;
      &lt;/xsd:complexContent&gt;
    &lt;/xsd:complexType&gt;
  </code></pre>
  
  <p>Is there any best way to improve above xsd? <strong>I mean is there any scope to refactor above XSD</strong> ?</p>
  
  <p>Thanks!</p>