ZCML File
configure.zcml

<configure
    xmlns="http://namespaces.zope.org/zope"
    xmlns:apidoc="http://namespaces.zope.org/apidoc"
    xmlns:browser="http://namespaces.zope.org/browser"
    xmlns:zcml="http://namespaces.zope.org/zcml"
    >
<browser:page
    class=".macros.FormMacros"
    allowed_interface="zope.interface.common.mapping.IItemMapping"
    for="*"
    permission="zope.Public"
    name="form_macros"
    />
<browser:page
    for="*"
    permission="zope.Public"
    name="widget_macros"
    template="widget_macros.pt"
    />
<browser:page
    for="*"
    permission="zope.Public"
    name="addform_macros"
    template="add.pt"
    />
<adapter
    factory="zope.app.form.browser.exception.WidgetInputErrorView"
    provides="zope.app.form.browser.interfaces.IWidgetInputErrorView"
    for="
       zope.app.form.interfaces.IWidgetInputError
       zope.publisher.interfaces.browser.IBrowserRequest
       "

    permission="zope.Public"
    />
<adapter
    factory=".DisplayWidget"
    provides="zope.app.form.interfaces.IDisplayWidget"
    for="
       zope.schema.interfaces.IField
       zope.publisher.interfaces.browser.IBrowserRequest
       "

    permission="zope.Public"
    />
<adapter
    factory=".boolwidgets.BooleanDisplayWidget"
    provides="zope.app.form.interfaces.IDisplayWidget"
    for="
       zope.schema.interfaces.IBool
       zope.publisher.interfaces.browser.IBrowserRequest
       "

    permission="zope.Public"
    />
<adapter
    factory=".textwidgets.BytesDisplayWidget"
    provides="zope.app.form.interfaces.IDisplayWidget"
    for="
       zope.schema.interfaces.IBytes
       zope.publisher.interfaces.browser.IBrowserRequest
       "

    permission="zope.Public"
    />
<adapter
    factory=".DisplayWidget"
    provides="zope.app.form.interfaces.IDisplayWidget"
    for="
       zope.schema.interfaces.IBytesLine
       zope.publisher.interfaces.browser.IBrowserRequest
       "

    permission="zope.Public"
    />
<adapter
    factory=".textwidgets.ASCIIDisplayWidget"
    provides="zope.app.form.interfaces.IDisplayWidget"
    for="
       zope.schema.interfaces.IASCII
       zope.publisher.interfaces.browser.IBrowserRequest
       "

    permission="zope.Public"
    />
<adapter
    factory=".DisplayWidget"
    provides="zope.app.form.interfaces.IDisplayWidget"
    for="
       zope.schema.interfaces.IASCIILine
       zope.publisher.interfaces.browser.IBrowserRequest
       "

    permission="zope.Public"
    />
<adapter
    factory=".textwidgets.URIDisplayWidget"
    provides="zope.app.form.interfaces.IDisplayWidget"
    for="
       zope.schema.interfaces.IURI
       zope.publisher.interfaces.browser.IBrowserRequest
       "

    permission="zope.Public"
    />
<adapter
    factory=".DateDisplayWidget"
    provides="zope.app.form.interfaces.IDisplayWidget"
    for="
       zope.schema.interfaces.IDate
       zope.publisher.interfaces.browser.IBrowserRequest
       "

    permission="zope.Public"
    />
<adapter
    factory=".DatetimeDisplayWidget"
    provides="zope.app.form.interfaces.IDisplayWidget"
    for="
       zope.schema.interfaces.IDatetime
       zope.publisher.interfaces.browser.IBrowserRequest
       "

    permission="zope.Public"
    />
<adapter
    factory=".TextWidget"
    provides="zope.app.form.browser.interfaces.ITextBrowserWidget"
    for="
       zope.schema.interfaces.ITextLine
       zope.publisher.interfaces.browser.IBrowserRequest
       "

    permission="zope.Public"
    />
<adapter
    factory=".TextAreaWidget"
    provides="zope.app.form.browser.interfaces.ISimpleInputWidget"
    for="
       zope.schema.interfaces.IText
       zope.publisher.interfaces.browser.IBrowserRequest
       "

    permission="zope.Public"
    />
<adapter
    factory=".TextAreaWidget"
    provides="zope.app.form.browser.interfaces.ISimpleInputWidget"
    for="
       zope.schema.interfaces.ISourceText
       zope.publisher.interfaces.browser.IBrowserRequest
       "

    permission="zope.Public"
    />
<adapter
    factory=".BytesWidget"
    provides="zope.app.form.browser.interfaces.ISimpleInputWidget"
    for="
       zope.schema.interfaces.IBytesLine
       zope.publisher.interfaces.browser.IBrowserRequest
       "

    permission="zope.Public"
    />
<adapter
    factory=".FileWidget"
    provides="zope.app.form.browser.interfaces.ISimpleInputWidget"
    for="
       zope.schema.interfaces.IBytes
       zope.publisher.interfaces.browser.IBrowserRequest
       "

    permission="zope.Public"
    />
<adapter
    factory=".ASCIIAreaWidget"
    provides="zope.app.form.browser.interfaces.ISimpleInputWidget"
    for="
       zope.schema.interfaces.IASCII
       zope.publisher.interfaces.browser.IBrowserRequest
       "

    permission="zope.Public"
    />
<adapter
    factory=".ASCIIWidget"
    provides="zope.app.form.browser.interfaces.ISimpleInputWidget"
    for="
       zope.schema.interfaces.IASCIILine
       zope.publisher.interfaces.browser.IBrowserRequest
       "

    permission="zope.Public"
    />
<adapter
    factory=".IntWidget"
    provides="zope.app.form.browser.interfaces.ISimpleInputWidget"
    for="
       zope.schema.interfaces.IInt
       zope.publisher.interfaces.browser.IBrowserRequest
       "

    permission="zope.Public"
    />
<adapter
    factory=".UnicodeDisplayWidget"
    provides="zope.app.form.interfaces.IDisplayWidget"
    for="
       zope.schema.interfaces.IInt
       zope.publisher.interfaces.browser.IBrowserRequest
       "

    permission="zope.Public"
    />
<adapter
    factory=".FloatWidget"
    provides="zope.app.form.browser.interfaces.ISimpleInputWidget"
    for="
       zope.schema.interfaces.IFloat
       zope.publisher.interfaces.browser.IBrowserRequest
       "

    permission="zope.Public"
    />
<adapter
    factory=".UnicodeDisplayWidget"
    provides="zope.app.form.interfaces.IDisplayWidget"
    for="
       zope.schema.interfaces.IFloat
       zope.publisher.interfaces.browser.IBrowserRequest
       "

    permission="zope.Public"
    />
<adapter
    factory=".DecimalWidget"
    provides="zope.app.form.browser.interfaces.ISimpleInputWidget"
    for="
       zope.schema.interfaces.IDecimal
       zope.publisher.interfaces.browser.IBrowserRequest
       "

    permission="zope.Public"
    />
<adapter
    factory=".UnicodeDisplayWidget"
    provides="zope.app.form.interfaces.IDisplayWidget"
    for="
       zope.schema.interfaces.IDecimal
       zope.publisher.interfaces.browser.IBrowserRequest
       "

    permission="zope.Public"
    />
<adapter
    factory=".DatetimeWidget"
    provides="zope.app.form.browser.interfaces.ISimpleInputWidget"
    for="
       zope.schema.interfaces.IDatetime
       zope.publisher.interfaces.browser.IBrowserRequest
       "

    permission="zope.Public"
    />
<adapter
    factory=".DateWidget"
    provides="zope.app.form.browser.interfaces.ISimpleInputWidget"
    for="
       zope.schema.interfaces.IDate
       zope.publisher.interfaces.browser.IBrowserRequest
       "

    permission="zope.Public"
    />
<adapter
    factory=".CheckBoxWidget"
    provides="zope.app.form.browser.interfaces.ISimpleInputWidget"
    for="
       zope.schema.interfaces.IBool
       zope.publisher.interfaces.browser.IBrowserRequest
       "

    permission="zope.Public"
    />
<adapter
    factory=".PasswordWidget"
    provides="zope.app.form.browser.interfaces.ISimpleInputWidget"
    for="
       zope.schema.interfaces.IPassword
       zope.publisher.interfaces.browser.IBrowserRequest
       "

    permission="zope.Public"
    />
<adapter
    factory=".ChoiceDisplayWidget"
    provides="zope.app.form.interfaces.IDisplayWidget"
    for="
       zope.schema.interfaces.IChoice
       zope.publisher.interfaces.browser.IBrowserRequest
       "

    permission="zope.Public"
    />
<adapter
    factory=".ChoiceInputWidget"
    provides="zope.app.form.browser.interfaces.ISimpleInputWidget"
    for="
       zope.schema.interfaces.IChoice
       zope.publisher.interfaces.browser.IBrowserRequest
       "

    permission="zope.Public"
    />
<adapter
    factory=".CollectionDisplayWidget"
    provides="zope.app.form.interfaces.IDisplayWidget"
    for="
       zope.schema.interfaces.ICollection
       zope.publisher.interfaces.browser.IBrowserRequest
       "

    permission="zope.Public"
    />
<adapter
    factory=".CollectionInputWidget"
    provides="zope.app.form.browser.interfaces.ISimpleInputWidget"
    for="
       zope.schema.interfaces.ICollection
       zope.publisher.interfaces.browser.IBrowserRequest
       "

    permission="zope.Public"
    />
<adapter
    factory=".CollectionDisplayWidget"
    provides="zope.app.form.interfaces.IDisplayWidget"
    for="
       zope.schema.interfaces.ISequence
       zope.publisher.interfaces.browser.IBrowserRequest
       "

    permission="zope.Public"
    />
<adapter
    factory=".CollectionInputWidget"
    provides="zope.app.form.browser.interfaces.ISimpleInputWidget"
    for="
       zope.schema.interfaces.ISequence
       zope.publisher.interfaces.browser.IBrowserRequest
       "

    permission="zope.Public"
    />
<adapter
    factory=".TupleSequenceWidget"
    provides="zope.app.form.browser.interfaces.ISimpleInputWidget"
    for="
       zope.schema.interfaces.ITuple
       zope.schema.interfaces.IField
       zope.publisher.interfaces.browser.IBrowserRequest
       "

    permission="zope.Public"
    />
<adapter
    factory=".ListSequenceWidget"
    provides="zope.app.form.browser.interfaces.ISimpleInputWidget"
    for="
       zope.schema.interfaces.IList
       zope.schema.interfaces.IField
       zope.publisher.interfaces.browser.IBrowserRequest
       "

    permission="zope.Public"
    />
<adapter
    factory=".SequenceDisplayWidget"
    provides="zope.app.form.interfaces.IDisplayWidget"
    for="
       zope.schema.interfaces.ISequence
       zope.schema.interfaces.IField
       zope.publisher.interfaces.browser.IBrowserRequest
       "

    permission="zope.Public"
    />
<adapter
    factory=".ChoiceCollectionDisplayWidget"
    provides="zope.app.form.interfaces.IDisplayWidget"
    for="
       zope.schema.interfaces.IList
       zope.schema.interfaces.IChoice
       zope.publisher.interfaces.browser.IBrowserRequest
       "

    permission="zope.Public"
    />
<adapter
    factory=".ChoiceCollectionInputWidget"
    provides="zope.app.form.browser.interfaces.ISimpleInputWidget"
    for="
       zope.schema.interfaces.IList
       zope.schema.interfaces.IChoice
       zope.publisher.interfaces.browser.IBrowserRequest
       "

    permission="zope.Public"
    />
<adapter
    factory=".ChoiceCollectionDisplayWidget"
    provides="zope.app.form.interfaces.IDisplayWidget"
    for="
       zope.schema.interfaces.ITuple
       zope.schema.interfaces.IChoice
       zope.publisher.interfaces.browser.IBrowserRequest
       "

    permission="zope.Public"
    />
<adapter
    factory=".ChoiceCollectionInputWidget"
    provides="zope.app.form.browser.interfaces.ISimpleInputWidget"
    for="
       zope.schema.interfaces.ITuple
       zope.schema.interfaces.IChoice
       zope.publisher.interfaces.browser.IBrowserRequest
       "

    permission="zope.Public"
    />
<adapter
    factory=".ChoiceCollectionDisplayWidget"
    provides="zope.app.form.interfaces.IDisplayWidget"
    for="
       zope.schema.interfaces.ISet
       zope.schema.interfaces.IChoice
       zope.publisher.interfaces.browser.IBrowserRequest
       "

    permission="zope.Public"
    />
<adapter
    factory=".ChoiceCollectionInputWidget"
    provides="zope.app.form.browser.interfaces.ISimpleInputWidget"
    for="
       zope.schema.interfaces.ISet
       zope.schema.interfaces.IChoice
       zope.publisher.interfaces.browser.IBrowserRequest
       "

    permission="zope.Public"
    />
<adapter
    factory=".ChoiceCollectionDisplayWidget"
    provides="zope.app.form.interfaces.IDisplayWidget"
    for="
       zope.schema.interfaces.IFrozenSet
       zope.schema.interfaces.IChoice
       zope.publisher.interfaces.browser.IBrowserRequest
       "

    permission="zope.Public"
    />
<adapter
    factory=".ChoiceCollectionInputWidget"
    provides="zope.app.form.browser.interfaces.ISimpleInputWidget"
    for="
       zope.schema.interfaces.IFrozenSet
       zope.schema.interfaces.IChoice
       zope.publisher.interfaces.browser.IBrowserRequest
       "

    permission="zope.Public"
    />
<adapter
    factory=".ItemDisplayWidget"
    provides="zope.app.form.interfaces.IDisplayWidget"
    for="
       zope.schema.interfaces.IChoice
       zope.schema.interfaces.IBaseVocabulary
       zope.publisher.interfaces.browser.IBrowserRequest
       "

    permission="zope.Public"
    />
<adapter
    factory=".DropdownWidget"
    provides="zope.app.form.browser.interfaces.ISimpleInputWidget"
    for="
       zope.schema.interfaces.IChoice
       zope.schema.interfaces.IVocabularyTokenized
       zope.publisher.interfaces.browser.IBrowserRequest
       "

    permission="zope.Public"
    />
<adapter
    factory=".source.SourceMultiSelectSetWidget"
    provides="zope.app.form.browser.interfaces.ISimpleInputWidget"
    for="
       zope.schema.interfaces.ISet
       zope.schema.interfaces.IIterableSource
       zope.publisher.interfaces.browser.IBrowserRequest
       "

    permission="zope.Public"
    />
<adapter
    factory=".source.SourceMultiSelectFrozenSetWidget"
    provides="zope.app.form.browser.interfaces.ISimpleInputWidget"
    for="
       zope.schema.interfaces.IFrozenSet
       zope.schema.interfaces.IIterableSource
       zope.publisher.interfaces.browser.IBrowserRequest
       "

    permission="zope.Public"
    />
<adapter
    factory=".source.SourceDropdownWidget"
    provides="zope.app.form.browser.interfaces.ISimpleInputWidget"
    for="
       zope.schema.interfaces.IChoice
       zope.schema.interfaces.IIterableSource
       zope.publisher.interfaces.browser.IBrowserRequest
       "

    permission="zope.Public"
    />
<adapter
    factory=".source.SourceOrderedMultiSelectWidget"
    provides="zope.app.form.browser.interfaces.ISimpleInputWidget"
    for="
       zope.schema.interfaces.IList
       zope.schema.interfaces.IIterableSource
       zope.publisher.interfaces.browser.IBrowserRequest
       "

    permission="zope.Public"
    />
<adapter
    factory=".MultiSelectSetWidget"
    provides="zope.app.form.browser.interfaces.ISimpleInputWidget"
    for="
       zope.schema.interfaces.ISet
       zope.schema.interfaces.IVocabularyTokenized
       zope.publisher.interfaces.browser.IBrowserRequest
       "

    permission="zope.Public"
    />
<adapter
    factory=".MultiSelectFrozenSetWidget"
    provides="zope.app.form.browser.interfaces.ISimpleInputWidget"
    for="
       zope.schema.interfaces.IFrozenSet
       zope.schema.interfaces.IVocabularyTokenized
       zope.publisher.interfaces.browser.IBrowserRequest
       "

    permission="zope.Public"
    />
<adapter
    factory=".SetDisplayWidget"
    provides="zope.app.form.interfaces.IDisplayWidget"
    for="
       zope.schema.interfaces.ISet
       zope.schema.interfaces.IBaseVocabulary
       zope.publisher.interfaces.browser.IBrowserRequest
       "

    permission="zope.Public"
    />
<adapter
    factory=".SetDisplayWidget"
    provides="zope.app.form.interfaces.IDisplayWidget"
    for="
       zope.schema.interfaces.IFrozenSet
       zope.schema.interfaces.IBaseVocabulary
       zope.publisher.interfaces.browser.IBrowserRequest
       "

    permission="zope.Public"
    />
<adapter
    factory=".OrderedMultiSelectWidget"
    provides="zope.app.form.browser.interfaces.ISimpleInputWidget"
    for="
       zope.schema.interfaces.IList
       zope.schema.interfaces.IVocabularyTokenized
       zope.publisher.interfaces.browser.IBrowserRequest
       "

    permission="zope.Public"
    />
<adapter
    factory=".SetDisplayWidget"
    provides="zope.app.form.interfaces.IDisplayWidget"
    for="
       zope.schema.interfaces.IList
       zope.schema.interfaces.IBaseVocabulary
       zope.publisher.interfaces.browser.IBrowserRequest
       "

    permission="zope.Public"
    />
<adapter
    factory=".source.SourceDisplayWidget"
    provides="zope.app.form.interfaces.IDisplayWidget"
    for="
       zope.schema.interfaces.IChoice
       zope.schema.interfaces.ISource
       zope.publisher.interfaces.browser.IBrowserRequest
       "

    permission="zope.Public"
    />
<adapter
    factory=".source.SourceInputWidget"
    provides="zope.app.form.browser.interfaces.ISimpleInputWidget"
    for="
       zope.schema.interfaces.IChoice
       zope.schema.interfaces.ISource
       zope.publisher.interfaces.browser.IBrowserRequest
       "

    permission="zope.Public"
    />
<adapter
    factory=".source.SourceSequenceDisplayWidget"
    provides="zope.app.form.interfaces.IDisplayWidget"
    for="
       zope.schema.interfaces.ISequence
       zope.schema.interfaces.ISource
       zope.publisher.interfaces.browser.IBrowserRequest
       "

    permission="zope.Public"
    />
<adapter
    factory=".source.SourceSequenceDisplayWidget"
    provides="zope.app.form.interfaces.IDisplayWidget"
    for="
       zope.schema.interfaces.IAbstractSet
       zope.schema.interfaces.ISource
       zope.publisher.interfaces.browser.IBrowserRequest
       "

    permission="zope.Public"
    />
<adapter
    factory=".source.SourceListInputWidget"
    provides="zope.app.form.browser.interfaces.ISimpleInputWidget"
    for="
       zope.schema.interfaces.IList
       zope.schema.interfaces.ISource
       zope.publisher.interfaces.browser.IBrowserRequest
       "

    permission="zope.Public"
    />
<configure
    zcml:condition="have apidoc"
    >
<apidoc:bookchapter
    id="form"
    title="Widgets and Forms"
    />
<apidoc:bookchapter
    id="bwidget"
    title="Basic Widgets"
    doc_path="README.txt"
    parent="form"
    />
<apidoc:bookchapter
    id="swidget"
    title="Source Widgets"
    doc_path="source.txt"
    parent="form"
    />
<apidoc:bookchapter
    id="awidget"
    title="Advanced Widgets"
    doc_path="widgets.txt"
    parent="form"
    />
<apidoc:bookchapter
    id="formdirective"
    title="The browser:form Directive"
    doc_path="form.txt"
    parent="form"
    />
</configure>
</configure>