<configure
    xmlns="http://namespaces.zope.org/zope"
    xmlns:grok="http://namespaces.zope.org/grok"
    xmlns:plone="http://namespaces.plone.org/plone"
    i18n_domain="plone.app.dexterity">

    <include package="plone.behavior" file="meta.zcml"/>
    
    <!-- Fields -->
    <include package="plone.app.relationfield"/>
    
    <!-- widgets -->
    <include package="plone.formwidget.autocomplete"/>
    <include package="plone.formwidget.contenttree"/>
    
    <!-- vocabularies -->
    <include package="plone.app.vocabularies"/>

    <!-- Grok schemata -->
    <grok:grok package="." />

    <!-- Metadata -->
    <plone:behavior
        title="Basic metadata"
        description="Adds a title and description"
        provides=".metadata.IBasic"
        factory=".metadata.Basic"
        for="plone.dexterity.interfaces.IDexterityContent"
        />
    <plone:behavior
        title="Categorization"
        description="Adds keywords and language setting"
        provides=".metadata.ICategorization"
        factory=".metadata.Categorization"
        for="plone.dexterity.interfaces.IDexterityContent"
        />
    <plone:behavior
        title="Effective range"
        description="Assign an effective and/or expiration date"
        provides=".metadata.IPublication"
        factory=".metadata.Publication"
        for="plone.dexterity.interfaces.IDexterityContent"
        />
    <plone:behavior
        title="Ownership"
        description="Adds creator, contributor, and rights fields"
        provides=".metadata.IOwnership"
        factory=".metadata.Ownership"
        for="plone.dexterity.interfaces.IDexterityContent"
        />
    <plone:behavior
        title="Dublin Core metadata"
        description="Adds Dublin Core metadata fields (equals Basic metadata + Categorization + Effective range + Ownership)"
        provides=".metadata.IDublinCore"
        factory=".metadata.DublinCore"
        for="plone.dexterity.interfaces.IDexterityContent"
        />

    <!-- Title-to-id -->
    <plone:behavior
        title="Name from title"
        description="Automatically generate short URL name for content based on its initial title"
        provides="plone.app.content.interfaces.INameFromTitle"
        for="plone.dexterity.interfaces.IDexterityContent"
        />

    <!-- File-name-to-id -->
    <plone:behavior
        title="Name from file name"
        description="Automatically generate short URL name for content based on its primary field file name"
        provides=".filename.INameFromFileName"
        for="plone.dexterity.interfaces.IDexterityContent"
        />

    <adapter factory=".filename.NameFromFileName" />

    <!-- Related items (marker) --> 
    <plone:behavior 
        title="Related items (deprecated)"
        description="Adds the ability to assign related items" 
        provides=".related.IRelatedItems" 
        for="plone.dexterity.interfaces.IDexterityContent" 
        />

    <!-- Navigation root -->
    <plone:behavior
        title="Navigation root"
        description="Make all items of this type a navigation root. (Warning: this affects site navigation and is intended for content types that act as their own subsite.)"
        provides="plone.app.layout.navigation.interfaces.INavigationRoot"
        for="plone.dexterity.interfaces.IDexterityContent"
        />

    <!-- Exclude from navigation -->
    <plone:behavior
        title="Exclude From navigation"
        description="Allow items to be excluded from navigation"
        provides=".exclfromnav.IExcludeFromNavigation"
        for="plone.dexterity.interfaces.IDexterityContent"
        />

    <!-- Next previous -->
    <plone:behavior
        title="Next previous navigation toggle"
        description="Allow items to have next previous navigation enabled"
        provides=".nextprevious.INextPreviousToggle"
        for="plone.dexterity.interfaces.IDexterityContainer"
        />

    <adapter factory=".nextprevious.NextPreviousToggle" />

    <adapter
        factory=".nextprevious.DefaultNextPreviousEnabled"
        name="default" />

    <plone:behavior
        title="Next previous navigation"
        description="Enable next previous navigation for all items of this type"
        provides=".nextprevious.INextPreviousEnabled"
        for="plone.dexterity.interfaces.IDexterityContainer"
        />

    <adapter factory=".nextprevious.NextPreviousEnabled" />

</configure>
