title: Validating XML with XSDs ... but still allow extensibility
body: <p>Maybe it's me, but it appears that if you have an XSD </p>
  
  <pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt;
  &lt;xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"&gt;
      &lt;xs:element name="User"&gt;
          &lt;xs:complexType&gt;
              &lt;xs:sequence&gt;
                  &lt;xs:element name="GivenName" /&gt;
                  &lt;xs:element name="SurName" /&gt;
              &lt;/xs:sequence&gt;
              &lt;xs:attribute name="ID" type="xs:unsignedByte" use="required" /&gt;
          &lt;/xs:complexType&gt;
      &lt;/xs:element&gt;
  &lt;/xs:schema&gt;
  </code></pre>
  
  <p>that defines the schema for this document</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="utf-8" ?&gt;
  &lt;User ID="1"&gt;
      &lt;GivenName&gt;&lt;/GivenName&gt;
      &lt;SurName&gt;&lt;/SurName&gt;
  &lt;/User&gt;
  </code></pre>
  
  <p>It would fail to validate if you added another element, say EmailAddress, and mix up the order</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="utf-8" ?&gt;
  &lt;User ID="1"&gt;
      &lt;SurName&gt;&lt;/SurName&gt;
      &lt;EmailAddress&gt;&lt;/EmailAddress&gt;
      &lt;GivenName&gt;&lt;/GivenName&gt;
  &lt;/User&gt;
  </code></pre>
  
  <p>I don't want to add EmailAddress to the document and have it be marked optional.</p>
  
  <p>I just want an XSD that validates the bare minimum requirements that the document must meet.</p>
  
  <p>Is there a way to do this?</p>
  
  <h2>EDIT:</h2>
  
  <p>marc_s pointed out below that you can use <code>xs:any</code> inside of <code>xs:sequence</code> to allow more elements, unfortunately, you have to maintain the order of elements.</p>
  
  <p>Alternatively, I can use <code>xs:all</code> which doesn't enforce the order of elements, but alas, doesn't allow me to place <code>xs:any</code> inside of it.</p>