automatically manages the set of XML instance documents that are generated by a submitted form to ensure that it is valid with respect to the document types in the form. The validity of values is enforced as described in Valid Forms and in the discussion on patterns.

However,  also ensures that the structure of a submitted document conforms to its type. This is best explained with an example. Consider the following schema fragment uploaded to .

<xsd:element name="customer">   
  <xsd:complexType>     
   <xsd:sequence>       
     <xsd:element name="firstname" type="xsd:string"/>        
     <xsd:element name="lastname" type="xsd:string"/>
     <xsd:element name="fullname" type="xsd:string"/>      
   </xsd:sequence>   
  </xsd:complexType> 
</xsd:element>

Assume that the user adds the element customer to the form's types. All three elements (firstname, lastname and fullname) are required by the type. But, the form designer is not obligated to add all three controls to the form. Let's say the designer adds controls for firstname and lastname but omits fullname. The form will have two invalid controls when initially loaded. 

When the user enters values in both fields, the form can be submitted.

However, this would generate an invalid XML document with respect to the schema since the schema specifies that a customer must also have a fullname.  manages this automatically by creating an empty fullname element in the document. The generated document looks like:

<customer>   
    <firstname>Joe</firstname>   
    <lastname>Smith</lastname>   
    <fullname/> 
</customer> 

The document will always be valid with respect to the schema.