XML schema problem for two definitions of the same element.

I have a XML situation that have many time the same element but with a
different defininiton as illustrated bellow and I would like to create the
XML schema that can validate this document. As you can see only the
<metadata> element differs from the first and second <document> element. The
first <document> element must occur only once and the second <document>
element can appears 0..unbounded. How can solve my problem?

Thanks for your answer.

Regards. Yvan

-------------
XML document:
-------------

<edoc>
   <document>
      <metadata>
         <documenttype>BODY</documenttype>
         <from>yhe</from>
         <to>yvan</to>
      </metadata>
      <content>this is the content of the first document</content>
   </document>
   <document>
      <metadata>
         <documenttype>ATTACHMENT</documenttype>
         <filename>test.doc</filename>
         <filesize>100</filesize>
      </metadata>
      <content>this is the content of the second document</content>
   </document>
</edoc>

-------------
XML schema:
-------------

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">
   <xs:element name="edoc">
      <xs:complexType>
         <xs:sequence>
            <xs:element name="document">
               <xs:complexType>
                  <xs:sequence>
                     <xs:element name="metadata">
                        <xs:complexType>
                           <xs:sequence>
                              <xs:element name="documenttype"
type="xs:string"/>
                              <xs:element name="from" type="xs:string"/>
                              <xs:element name="to" type="xs:string"/>
                           </xs:sequence>
                        </xs:complexType>
                     </xs:element>
                     <xs:element name="content" type="xs:string"/>
                  </xs:sequence>
               </xs:complexType>
            </xs:element>
            <xs:element name="document" minOccurs="0" maxOccurs="unbounded">
               <xs:complexType>
                  <xs:sequence>
                     <xs:element name="metadata">
                        <xs:complexType>
                           <xs:sequence>
                              <xs:element name="documenttype"
type="xs:string"/>
                              <xs:element name="filename" type="xs:string"/>
                              <xs:element name="filesize" type="xs:string"/>
                           </xs:sequence>
                        </xs:complexType>
                     </xs:element>
                     <xs:element name="content" type="xs:string"/>
                  </xs:sequence>
               </xs:complexType>
            </xs:element>
         </xs:sequence>
      </xs:complexType>
   </xs:element>
</xs:schema>


Yvan Hess
Chief Software Architect

e-mail: yvan.hess@imtf.ch
phone : +41 (0)26 460 66 66 
fax   : +41 (0)26 460 66 60 

Informatique-MTF SA
Route du Bleuet 1 
CH-1762 Givisiez 
        
Systemintegrators for eDocuments 
http://www.imtf.com

DISCLAIMER 
This message is intended only for use by the person to whom it is addressed.
It may contain information that is privileged and confidential. Its content
does not constitute a formal commitment by IMTF. If you are not the intended
recipient of this message, kindly notify the sender immediately and destroy
this message. Thank You.

Received on Friday, 18 June 2004 03:57:00 UTC