In the "Goals" section of my proposal (http://dev.zope.org/Zope3/ReducingTheAmountOfZCMLDirectives), I state:
Apart from the "elementary" directives (adapter and utility), ZCML directives are good for... * registering something that isn't a utility or adapter. E.g. setting a security policy, registering a TALES namespace adapter, global principals, registering a meta type/portal type in Zope 2/CMF. * registering an adapter or utility with added policy information that belongs in configuration, not in code. E.g.: o security information (e.g. view, browser:page in addition to adapter, the content/class directive) o configuration information for the component (e.g. SMTP host for the mailer utility, locales directory for the gettext message catalogs, text file for the help topic) * additional ways of defining application policy. E.g. granting permissions on roles, etc. This is my answer to "What is ZCML?". ZCML stands on two pillars: registration and other application-related policy. The third pillar, automation, is better done in Python. This is another point in my proposal. You're pondering about the meaning of "C" in ZCML. "C" is about the first two pillars (registration and other policy), it's not about automation. "Configuration" here doesn't necessarily refer to component configuration (unless it's an SMTP hostname, etc.), but to the configuration of the application as a whole. It may be that this view has changed over the past 5 years, but that's perfectly fine! As Jim said, everybody makes mistakes, that's how we learn. It also seems that you see the creation of a "TiksLanguageVocabulary" based on a general "LanguageVocabulary" as configuration. But it isn't. It's merely the *creation* of a component. Only the registration is the configuration, because that's what in the end changes application policy (its existence in the utility registry). Philipp _______________________________________________ Zope3-dev mailing list Zope3-dev@zope.org Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com