[table] [tr][td] I always have to look this up too. The syntax is very simple, and or is not part of the syntax, I am afraid. As you can see from the documentation in the zope.configuration source code, the syntax is always of the form verb arguments, where verb is one of have, not-have, installed and not-installed. have and not-have test for a registered feature. A registered feature is simply an opaque string that has been registered with a <meta:provides feature="something" /> tag. Use it to flag that something has been included without tying it to a particular implementation. Example:
<configure zcml:condition="have apidoc"> <!-- only when the apidoc feature has been provided --></configure>
installed and not-installed simply try to import the named package; if the import succeeds so does the installed test. Example:
<configure zcml:condition="installed sqlalchemy"> <!-- only when the sqlalchemy module can be imported --></configure>