[Zope3-dev] RFC: Use ConfigParser for High-Level Configuration
Dieter Maurer
dieter at handshake.de
Mon Mar 13 13:07:46 EST 2006
Jim Fulton wrote at 2006-3-12 15:54 -0500:
>Dieter Maurer wrote:
>> Jim Fulton wrote at 2006-3-11 18:03 -0500:
>>
>>>...
>>>Where is this documented?
>>
>>
>> I do not know. I saw a feature description in the mailing list.
>> Fred and Tres (the authors) should be able to tell you whether
>> there is a formal documentation and where you can find it.
>>
>>
>>>Let's pursue this a bit.
>>>
>>>Would it be possible to write a configuration file that loaded
>>>it's own schemas?
>>
>>
>> Yes -- with some restrictions: as I described in my previous mail.
>>
>> The feature essentially works as follows:
>>
>> You have an abstract section type in your primary
>> schema, usually usable in a multisection.
>>
>> Examples: ZServer server, ZODB storage, the general extension
>> abstract section type
>>
>> In your module/package, you define your own section type
>> implementing the abstract section type in its "component.xml".
>> You are completely free in its keys and subsections.
>>
>> In the configuration file, you import your module/package (which
>> makes available the definitions in its "component.xml") and
>> instantiate one or more of the section types defined there.
>>
>> Your application/module looks for the sections of "its" type
>> and uses them.
>>
>> The restriction: you cannot have new keys on the top level -- all
>> must be nested in a section type defined by your "component.xml".
>> But, this, I consider an advantage (ZConfig here behave similar
>> to a "ConfigParser" approach).
>
>So the example I gave won't work. In a schema, I have to have an
>abstract type for each thing I might want to add. But I don't know what
>I want to add. This doesn't sound very extensible.
You can have a *SINGLE* abstract type -- fixed for any extensions
you may imagine and use this as the hook in your "component.xml".
Such a single abstract type was added to the Zope schema to
make almost arbitrary extensions possible.
>I can't fathom the ZConfig documentation so I don't really know what
>an abstract type is.
It is essentially a name, which can be used at various places
in your schema and implemented at other places in different ways.
> I don't know how restrictive it has to be.
>Can I define an abstract type that matched anything?
Yes. I even think you currently cannot impose restrictions on
the sectiontypes claiming to implement the abstract type.
>Can I define a schema that just defines an abstract type that
>matches anything?
I think you must also use the abstract type in a section/multisection
definition. But that would be all.
--
Dieter
More information about the Zope3-dev
mailing list