[Zope-dev] DTML Documents == DTML Methods that are anchored?

Dieter Maurer dieter@handshake.de
Sat, 30 Dec 2000 19:57:50 +0100 (CET)


The Doctor What writes:
 > What are the differences between DTML Documents and Methods
 > internally?
There are too small differences:

 1. DTML documents implement the "PropertyManager" interface,
    i.e. they can have properties other than "id" and "title".


 2. DTML documents place themselves on top of the DTML
    namespace when they are rendered (called),
    DTML methods do not place themselves on the namespace at all
    for rendering.

    The effect is that during name lookup a DTML Document
    is asked early whether it (or its acquisition ancestors)
    can satisfy the name request. If it can, you get
    this object.
    A DTML Method, on the other hand, would not be asked
    in a similar situation, as it is not on the namespace
    stack.
    
    This means, name lookup looks through the
    DTML Method directly onto the method's client,
    the Method is completely transparent.
    A DTML Document is only partially transparent,
    it hides all names that it or its acquisition ancestors
    define. Only the other names are handled in the same
    way as would be the case for a DTML method.


Dieter