title: XSD for XML's with list of different and reorder types
body: <p>Tell me please, how can I create xsd schema, which successfully validate the following xml:
  <br/>
  <strong>Valid XML 1</strong></p>
  
  <pre><code>    &lt;?xml version="1.0" encoding="UTF-8"?&gt;
  &lt;start xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="schema.xsd"&gt;
    &lt;list&gt;
      &lt;typeA&gt;
        &lt;value&gt;test string value 123&lt;/value&gt;
      &lt;/typeA&gt;
      &lt;typeB&gt;
        &lt;value&gt;test string value 456&lt;/value&gt;
      &lt;/typeB&gt;
      &lt;typeC&gt;
        &lt;value&gt;test string value 789&lt;/value&gt;
      &lt;/typeC&gt;
    &lt;/list&gt;
  &lt;/start&gt;
  </code></pre>
  
  <p><strong>Valid XML 2</strong></p>
  
  <pre><code>    &lt;?xml version="1.0" encoding="UTF-8"?&gt;
  &lt;start xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="schema.xsd"&gt;
    &lt;list&gt;
      &lt;typeB&gt;
        &lt;value&gt;test string value 456&lt;/value&gt;
      &lt;/typeB&gt;
      &lt;typeC&gt;
        &lt;value&gt;test string value 789&lt;/value&gt;
      &lt;/typeC&gt;
    &lt;/list&gt;
  &lt;/start&gt;
  </code></pre>
  
  <p><strong>Valid XML 3</strong></p>
  
  <pre><code>    &lt;?xml version="1.0" encoding="UTF-8"?&gt;
  &lt;start xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="schema.xsd"&gt;
    &lt;list&gt;
      &lt;typeC&gt;
        &lt;value&gt;test string value 789&lt;/value&gt;
      &lt;/typeC&gt;
      &lt;typeC&gt;
        &lt;value&gt;test string value 123&lt;/value&gt;
      &lt;/typeC&gt;
    &lt;/list&gt;
  &lt;/start&gt;
  </code></pre>
  
  <p><strong>Valid XML 4</strong></p>
  
  <pre><code>    &lt;?xml version="1.0" encoding="UTF-8"?&gt;
  &lt;start xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="schema.xsd"&gt;
    &lt;list&gt;
      &lt;typeC&gt;
        &lt;value&gt;test string value 789&lt;/value&gt;
      &lt;/typeC&gt;
    &lt;/list&gt;
  &lt;/start&gt;
  </code></pre>
  
  <p><strong>Not valid XML 5 with reorder types</strong></p>
  
  <pre><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
  &lt;start xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="schema.xsd"&gt;
      &lt;list&gt;
          &lt;typeB&gt;
              &lt;value&gt;test string value 456&lt;/value&gt;
          &lt;/typeB&gt;
          &lt;typeC&gt;
              &lt;value&gt;test string value 789&lt;/value&gt;
          &lt;/typeC&gt;
          &lt;typeA&gt;
              &lt;value&gt;test string value 123&lt;/value&gt;
          &lt;/typeA&gt;
      &lt;/list&gt;
  &lt;/start&gt;
  </code></pre>
  
  <hr>
  
  <p>I wrote XSD, but it doesn't work for XML with reorder types (XML 5):</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
  &lt;xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"&gt;
      &lt;xs:element name="typeC"&gt;
          &lt;xs:complexType&gt;
              &lt;xs:sequence&gt;
                  &lt;xs:element name="value" type="xs:string"/&gt;
              &lt;/xs:sequence&gt;
          &lt;/xs:complexType&gt;
      &lt;/xs:element&gt;
      &lt;xs:element name="typeB"&gt;
          &lt;xs:complexType&gt;
              &lt;xs:sequence&gt;
                  &lt;xs:element name="value" type="xs:string"/&gt;
              &lt;/xs:sequence&gt;
          &lt;/xs:complexType&gt;
      &lt;/xs:element&gt;
      &lt;xs:element name="typeA"&gt;
          &lt;xs:complexType&gt;
              &lt;xs:sequence&gt;
                  &lt;xs:element name="value" type="xs:string"/&gt;
              &lt;/xs:sequence&gt;
          &lt;/xs:complexType&gt;
      &lt;/xs:element&gt;
      &lt;xs:element name="start"&gt;
          &lt;xs:complexType&gt;
              &lt;xs:sequence&gt;
                  &lt;xs:element ref="list"/&gt;
              &lt;/xs:sequence&gt;
          &lt;/xs:complexType&gt;
      &lt;/xs:element&gt;
      &lt;xs:element name="list"&gt;
          &lt;xs:complexType&gt;
              &lt;xs:sequence&gt;
                  &lt;xs:element ref="typeA" minOccurs="0" maxOccurs="unbounded"/&gt;
                  &lt;xs:element ref="typeB" minOccurs="0" maxOccurs="unbounded"/&gt;
                  &lt;xs:element ref="typeC" minOccurs="0" maxOccurs="unbounded"/&gt;
              &lt;/xs:sequence&gt;
          &lt;/xs:complexType&gt;
      &lt;/xs:element&gt;
  &lt;/xs:schema&gt;
  </code></pre>
  
  <p>Is there any other way to achieve this?
  <br/>
  The solution should work for 5 different XML files, listed above.</p>
  
  <p>Thanks in advance!</p>