In general, any object or mapping can act as a namespace. Variables are looked up in objects by finding object attributes and methods. Variables are looked up in mappings normally. However, Zope constrains what you can lookup in a DTML method. See the section on security for more information on lookup constraints.
Idle reflections Let's take a breather here and reflect a little.
We've seen that DTML uses a dynamic stack of namespaces. Often these namespaces correspond to objects. So we have a scenario in which variables are looked up by traversing layers of objects. This motif is quite central to Zope. Both object publishing and acquisition echo this theme of object traversal.