Determining all widgets for all fields as given by a DX supermodel?

We have supermodel like this with standard fields and widgets and fields with an explict widget configuration:

<field xmlns="" xmlns:easyform="" xmlns:form="" xmlns:i18n="" xmlns:lingua="" xmlns:marshal="" xmlns:security="" xmlns:users="" name="description" type="zope.schema.Text">
      <description i18n:translate="help_description">Used in item listings and search results.</description>
      <title i18n:translate="label_description">Summary</title>
<field xmlns="" xmlns:lingua="" xmlns:easyform="" xmlns:form="" xmlns:i18n="" xmlns:marshal="" xmlns:security="" xmlns:users="" name="start" type="zope.schema.Datetime" lingua:independent="true">
      <default>2019-03-19 07:00:00+01:00</default>
      <description i18n:translate="help_event_start">Date and Time, when the event begins.</description>
      <title i18n:translate="label_event_start">Event Starts</title>
      <form:widget type="">

We can basically convert an XML supermodel forth and back to a schema using

I need for all field (names) the related widget in order to cal the related field converter using something for Text field with its implied RichText widget

from z3c.form.converter import BaseDataConverter
from z3c.form.browser.text import TextFieldWidget
value = z3c.form.converter.BaseDataConverter(all_fields['text'], TextFieldWidget).toFieldValue('abc')

So the question is how to get from a field inside a schema or supermodel to its implied widget or explicit widget?