ZCML File
groupfolder.zcml

<configure
    xmlns="http://namespaces.zope.org/zope"
    xmlns:apidoc="http://namespaces.zope.org/apidoc"
    xmlns:zcml="http://namespaces.zope.org/zcml"
    i18n_domain="zope"
    >
<class
    class=".groupfolder.GroupInformation"
    >
<require
    permission="zope.ManageServices"
    interface="        "
    set_schema=".groupfolder.IGroupInformation"
    />
</class>
<class
    class=".groupfolder.GroupFolder"
    >
<implements
    interface=".groupfolder.IGroupFolder"
    />
<require
    permission="zope.ManageServices"
    interface="        "
    />
</class>
<adapter
    factory=".idpicker.IdPicker"
    provides="zope.app.container.interfaces.INameChooser"
    for=".groupfolder.IGroupFolder"
    />
<subscriber
    handler=".groupfolder.specialGroups"
    for=".interfaces.IPrincipalCreated"
    />
<subscriber
    handler=".groupfolder.setGroupsForPrincipal"
    for=".interfaces.IPrincipalCreated"
    />
<subscriber
    handler=".groupfolder.setMemberSubscriber"
    />
<include
    file="groupfolder.zcml"
    package=".browser"
    />
<configure
    zcml:condition="have apidoc"
    >
<apidoc:bookchapter
    id="groupfolder"
    title="Group Folders"
    doc_path="groupfolder.txt"
    parent="security/authentication"
    />
</configure>
</configure>