<configure
    xmlns="http://namespaces.zope.org/zope"
    xmlns:meta="http://namespaces.zope.org/meta">

  <include package="zope.component" file="meta.zcml" />
  <include package="zope.security" file="meta.zcml" />
  <include package="zope.i18n" file="meta.zcml" />

  <!-- BBB 2006/02/24, to be removed after 12 months -->
  <include package="zope.modulealias" file="meta.zcml" />

  <include package=".site" file="meta.zcml" />
  <include package=".browser" file="meta.zcml" />
  <include package=".form" file="meta.zcml" />

  <meta:directives namespace="http://namespaces.zope.org/zope">

    <meta:directive
        name="view"
        schema="zope.app.component.metadirectives.IViewDirective"
        handler="zope.app.component.metaconfigure.view"
        />

    <!-- BBB 2006/02/24, to be removed after 12 months -->
    <meta:directive
        name="factory"
        schema="zope.app.component.metadirectives.IFactoryDirective"
        handler="zope.app.component.metaconfigure.factory"
        />

    <meta:complexDirective
        name="class"
        schema="zope.app.component.metadirectives.IClassDirective"
        handler=".metaconfigure.ClassDirective"
        >

      <meta:subdirective
          name="implements"
          schema="zope.app.component.metadirectives.IImplementsSubdirective"
          />

      <meta:subdirective
          name="require"
          schema="zope.app.component.metadirectives.IRequireSubdirective"
          />

      <meta:subdirective
          name="allow"
          schema="zope.app.component.metadirectives.IAllowSubdirective"
          />

    </meta:complexDirective>

    <!-- BBB 2006/02/24, to be removed after 12 months -->
    <meta:complexDirective
        name="content"
        schema="zope.app.component.metadirectives.IClassDirective"
        handler=".metaconfigure.ContentDirective"
        >

      <meta:subdirective
          name="implements"
          schema="zope.app.component.metadirectives.IImplementsSubdirective"
          />

      <meta:subdirective
          name="require"
          schema="zope.app.component.metadirectives.IRequireSubdirective"
          />

      <meta:subdirective
          name="allow"
          schema="zope.app.component.metadirectives.IAllowSubdirective"
          />

    </meta:complexDirective>

    <!-- BBB 2006/02/24, to be removed after 12 months -->
    <meta:directive
        name="vocabulary"
        schema="zope.app.schema.metadirectives.IVocabularyDirective"
        handler="zope.app.schema.metaconfigure.vocabulary"
        />

    <!-- BBB 2006/02/24, to be removed after 12 months -->
    <meta:directive
        name="defaultLayer"
        schema="zope.app.component.metadirectives.IDefaultLayerDirective"
        handler="zope.app.component.metaconfigure.defaultLayer"
        />

    <meta:directive
        name="securityPolicy"
        schema="zope.security.zcml.ISecurityPolicyDirective"
        handler="zope.security.zcml.securityPolicy"
        />

  </meta:directives>

  <meta:directives namespace="http://namespaces.zope.org/five">

    <!-- specific to Five -->

    <meta:directive
       name="loadProducts"
       schema=".fivedirectives.IInclude"
       handler=".fiveconfigure.loadProducts"
       />

    <meta:directive
       name="loadProductsOverrides"
       schema=".fivedirectives.IInclude"
       handler=".fiveconfigure.loadProductsOverrides"
       />

    <meta:directive
       name="implements"
       schema=".fivedirectives.IImplementsDirective"
       handler=".fiveconfigure.implements"
       />

    <meta:directive
       name="defaultViewable"
       schema=".fivedirectives.IDefaultViewableDirective"
       handler=".fiveconfigure.defaultViewable"
       />

    <meta:directive
       name="traversable"
       schema=".fivedirectives.ITraversableDirective"
       handler=".fiveconfigure.traversable"
       />

    <meta:directive
       name="containerEvents"
       schema=".fivedirectives.IContainerEventsDirective"
       handler=".eventconfigure.containerEvents"
       />

    <meta:directive
       name="deprecatedManageAddDelete"
       schema=".fivedirectives.IDeprecatedManageAddDeleteDirective"
       handler=".eventconfigure.deprecatedManageAddDelete"
       />

    <meta:directive
       name="sizable"
       schema=".fivedirectives.ISizableDirective"
       handler=".sizeconfigure.sizable"
       />

    <meta:directive
        name="pagesFromDirectory"
        schema=".fivedirectives.IPagesFromDirectoryDirective"
        handler=".fiveconfigure.pagesFromDirectory"
        />

    <meta:directive
       name="bridge"
       schema=".fivedirectives.IBridgeDirective"
       handler=".fiveconfigure.bridge"
       />

    <meta:directive
       name="registerClass"
       schema=".fivedirectives.IRegisterClassDirective"
       handler=".fiveconfigure.registerClass"
       />

    <meta:directive
       name="registerPackage"
       schema=".fivedirectives.IRegisterPackageDirective"
       handler=".fiveconfigure.registerPackage"
       />

  </meta:directives>

</configure>
