DTD to XSD conversion
===

I stuck with the following conversion from DTD:

    <!ELEMENT contact (name+, ((email | phone+) | (email, phone+)), address?)>
to XSD:

    <xs:element name="contact">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" ref="name"/>
        <xs:choice>
          <xs:choice>
            <xs:element ref="email"/>
            <xs:element maxOccurs="unbounded" ref="phone"/>
          </xs:choice>
          <xs:sequence>
    <!-- Next line causes exception -->
            <xs:element ref="email"/>
            <xs:element maxOccurs="unbounded" ref="phone"/>
          </xs:sequence>
        </xs:choice>
        <xs:element minOccurs="0" ref="address"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

I get 'Multiple definition of element 'email' causes the content model to become ambiguous.' exception.
What I do wrong? any suggestions to overcome