title: xsd: How to extend a type with an unordered list of elements
body: <p>This is a part of my xml schema</p>
  
  <pre><code>&lt;xs:complexType name="Friend"&gt;
      &lt;xs:all&gt;
          &lt;xs:element name="name" type="xs:string" /&gt;
          &lt;xs:element name="phone" type="xs:string" /&gt;
          &lt;xs:element name="address" type="xs:string" /&gt;
      &lt;/xs:all&gt;
  &lt;/xs:complexType&gt;
  
  &lt;xs:complexType name="Coworker"&gt;
      &lt;xs:all&gt;
          &lt;xs:element name="name" type="xs:string" /&gt;
          &lt;xs:element name="phone" type="xs:string" /&gt;
          &lt;xs:element name="office" type="xs:string" /&gt;
      &lt;/xs:all&gt;
  &lt;/xs:complexType&gt;
  </code></pre>
  
  <p>For better maintainability, I would like to have the shared attributes in an (abstract) super type or something like that. But more important, I want that all elements are unordered and also optional.</p>
  
  <p>Is this possible, and what is the best way to do it?</p>