title: DTD required elements ordering
body: <p>I want to have list of required elements in any order defined in dtd, but have no idea how I could do this.</p>
  
  <p>For example, I have following definition:</p>
  
  <pre><code>&lt;!ELEMENT parent (child1, child2, child3)&gt;
  </code></pre>
  
  <p>This dtd declaration will successfully validate following piece of xml:</p>
  
  <pre><code>&lt;parent&gt;
     &lt;child1&gt;&lt;/child1&gt;
     &lt;child2&gt;&lt;/child2&gt;
     &lt;child3&gt;&lt;/child3&gt;
  &lt;/parent&gt;
  </code></pre>
  
  <p>But in following case xml will not pass validation:</p>
  
  <pre><code>&lt;parent&gt;
     &lt;child2&gt;&lt;/child2&gt;
     &lt;child1&gt;&lt;/child1&gt;
     &lt;child3&gt;&lt;/child3&gt;
  &lt;/parent&gt;
  </code></pre>
  
  <p>One of the possible solution is to declare </p>
  
  <pre><code>&lt;!ELEMENT parent (child1 | child2 | child3)&gt;
  </code></pre>
  
  <p>But in this case one of the childs might be missing though validation will be successful.</p>
  
  <p>I need correct dtd element declaration for the case when list of required elements can be present in any order.</p>