Zope 3 API Documentation

Welcome to the Zope 3 API documentation tool. The documentation provided here is separated in several discrete documentation modules. You can see the list of available modules in the top-left box on your screen. When you click on a module, the module's menu will appear below. In the menu you have then navigational means to access the documentation content of the module.

Modules are usually depending on each other by using links that create references across all modules. Each module has a "theme" that it follows, which was designed to aid the developer directly to the desired information. Below you see a short description of every module.


This is a developer's book compiled from all existing documentation files. It is not meant to be a complete or cohesive work, but each chapter in itself is a little story. Think about it like a collection of fairy tales.

Code Browser

This module allows you to get an overview of the modules and classes defined in the Zope 3 framework and its supporting packages. There are two methods to navigate through the modules to find the classes you are interested in.

The first method is to type in some part of the Python path of the class and the module will look in the class registry for matches. The menu will then return with a list of these matches.

The second method is to click on the "Browse Zope Source" link. In the main window, you will see a directory listing with the root Zope 3 modules. You can click on the module names to discover their content. If a class is found, it is represented as a bold entry in the list.

The documentation contents of a class provides you with an incredible amount of information. Not only does it tell you about its base classes, implemented interfaces, attributes and methods, but it also lists the interface that requires a method or attribute to be implemented and the permissions required to access it.


All used and important interfaces are registered through the site manager. While it would be possible to just list all attributes, it is hard on the user to read such an overfull list. Therefore, interfaces that have partial common module paths are bound together.

The documentation of an interface also provides a wide variety of information, including of course the declared attributes/fields and methods, but also available adapters, and utilities that provide this interface.

Interface Types

Here you can see all registered interface types. When you open the subtree of a specific interface type, you can see all the interfaces that provide this type. This can be very useful in cases where you want to determine all content type interfaces, for example.


Utilities are also nicely registered in a site manager, so that it is easy to create a listing of available utilities. A utility is identified by the providing interface and a name, which can be empty. The menu provides you with a list of interfaces that utilities provide and as sub-items the names of the various implementations.

Again, the documentation of a utility lists all the attributes/fields and methods the utility provides and provides a link to the implementation.

ZCML Reference

This module presents you with a complete list of ZCML directives and serves therefore well as reference. The menu provides you with a tree that organizes the directives by namespaces.

The documentation contents for each directive tells you all the available attributes and their semantics. It also provides a link to the interface the directive confirms to. If available, it will even tell you the file the directive was declared in. At the end a list of available subdirectives is given, also listing the implemented interface and available attributes.