 <p>I would have presented it this way :</p> <pre><code>&lt;root&gt; &lt;person&gt; &lt;email/&gt; &lt;fname/&gt; &lt;lname/&gt; &lt;ssn/&gt; &lt;/person&gt; &lt;person&gt; &lt;email&gt;mrnt...&lt;/email&gt; &lt;fname&gt;Martin&lt;/fname&gt; &lt;lname&gt;Dimitrov&lt;/lname&gt; &lt;ssn&gt;123&lt;/ssn&gt; &lt;/person&gt; &lt;person&gt; &lt;email&gt;dani...&lt;/email&gt; &lt;fname&gt;Dany&lt;/fname&gt; &lt;lname&gt;Jones&lt;/lname&gt; &lt;ssn&gt;987&lt;/ssn&gt; &lt;/person&gt; &lt;/root&gt; </code></pre> <p>And associate an xsd schema defining the maxoccurs attribute of email and ssd to 1 </p> <pre><code>&lt;xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"&gt; &lt;xs:element name="root"&gt; &lt;xs:complexType&gt; &lt;xs:sequence&gt; &lt;xs:element name="person"&gt; &lt;xs:complexType&gt; &lt;xs:sequence&gt; &lt;xs:element type="xs:string" name="email" maxOccurs="1"/&gt; &lt;xs:element type="xs:string" name="fname"/&gt; &lt;xs:element type="xs:string" name="lname"/&gt; &lt;xs:element type="xs:string" name="ssn" maxOccurs="1"/&gt; &lt;/xs:sequence&gt; &lt;/xs:complexType&gt; &lt;/xs:element&gt; &lt;/xs:sequence&gt; &lt;/xs:complexType&gt; &lt;/xs:element&gt; &lt;/xs:schema&gt; </code></pre>