[Zope3-dev] Re: Schemas, Fields and Fieldsets

Jim Fulton jim@zope.com
Sat, 29 Mar 2003 06:25:21 -0500


Phillip J. Eby wrote:
> At 12:33 PM 3/28/03 -0300, Sidnei da Silva wrote:
> 
>> <big snip>
>>
>> On a related subject, I would like to know if there is any plan for
>> using a standard XML format for defining schema in Zope3.
> 
> 
> Actually, if we're going to use a standard format, I'd like to put in a 
> plug for the OMG MOF, which just happens to have a standard XML 
> interchange format, XMI.
> 
> The MOF (Meta-Object Facility) is the metamodel for UML, CORBA, and 
> other OMG standards such as CWM (Common Warehouse Metamodel - used for 
> exchanging relational database schemas, warehouse transforms, and other 
> goodies).
> 
> I will admit that MOF doesn't have any built-in mechanism for dealing 
> with fieldsets or UI representations.  However, like UML it includes the 
> notion of tagged values, that can be applied to classes and their 
> attributes, methods, exceptions, etc.  So a set of 'org.zope.schemas.*' 
> tagged values could be agreed upon for such things.
> 
> PEAK has an implementation of MOF 1.3.1 available; writing it mostly 
> consisted of straightforward transcription from the specification 
> document.  And, because PEAK has a code generator which can create 
> Python code from MOF models, I can trivially generate a similar 
> implementation for any version of UML or CWM for which there exists an 
> XMI document describing its metamodel.  So, if Zope used MOF-based 
> schemas, the same could be done with them.
> 
> When I finish adding the ability to write XMI files from arbitrary 
> models, I intend to start work on CWM->SQL generation as part of this 
> overall MOF/XMI toolchain.  Potentially, this could mean SQL generation 
> from Zope schemas, if they are in the same overall conceptual ballpark.  
> And, perhaps also useful, UML -> Zope schema generation.  PEAK can 
> currently read UML 1.3 or UML 1.4 models expressed as XMI 1.0 or 1.1, 
> and represent the model as in-memory objects, so if Zope schemas were a 
> subset (or stereotype/tagged value superset) of UML, that could work too.

This all sounds cool.

Jim


-- 
Jim Fulton           mailto:jim@zope.com       Python Powered!
CTO                  (703) 361-1714            http://www.python.org
Zope Corporation     http://www.zope.com       http://www.zope.org