[Zope3-dev] schema initial documentation
Craeg K Strong
cstrong@arielpartners.com
Wed, 08 May 2002 17:22:07 -0400
We have been having email problems. If this is a duplicate
post, my apologies...
--Craeg
Craeg K Strong wrote:
>
>
> R. David Murray wrote:
>
>> On Sun, 28 Apr 2002, Craeg K Strong wrote:
>>
>>
>>> in the sort of metamodeling issues you are discussing. My question is
>>> this: will the
>>> metamodel be reified? That is, will it be captured as actual code and
>>> classes such that models
>>> could be generated automatically from it? This is Goodness for many
>>> reasons
>>> (which we can get into in case it is not obvious to everybody).
>>>
>>
>>
>> I guess it's not obvious to me, probably because I don't know a lot
>> about modeling tools. In my visualization (which may or may not
>> be shared by Martijn and Jim), there will be "generic" views and
>> components that can use Schemas to automatically generate display
>> and edit forms, possibly using additional meta-data provided by
>> companion objects defined at the same level of abstraction as
>> the Schemas. Does your requirement go beyond that kind of thing?
>>
>>
> I think I am a little confused. I was looking at the XML-Schema
> specification
> on w3.org and it includes lots of ways of specifying rules that could be
> used for validation. For example, you might define a regular expression
> that specifies
> what a valid string input field value should look like, or set a maximum
> for the number
> of a certain sequence (e.g. no more than 100 items can be entered on a
> purchase order), etc.
>
> I can imagine how one might generate an XML-Schema from a python class,
> properly
> annotated with other metadata. I can further imagine how an HTML form
> might be generated from the
> XML-Schema. As a matter of fact, isn't that what the w3.org X-Forms
> standard is all
> about? I believe you define an XML-Schema that defines the data types,
> constraints,
> and validation rules, and then a mapping (using X-Forms UI language)
> that specifies
> how the actual form GUI should look.
>
> But what you are talking about is creating a new kind of Schema,
> implemented in Python.
> I wonder-- are you going to going to end up replicating the work done in
> XML-Schema?
> Or is the idea to put together something from which one could optionally
> _generate_
> an XML-Schema, if one wished? That way you could stay python-centric
> but have a nice integration path.
> Either way, I would think you would want to examine the XML-Schema spec
> and define
> a specification (aka meta model) of your own that is similar in
> semantics as much as makes sense.
>
> The metamodel will define the things that can exist: for example, a
> Schema can have Features,
> Features can either be Associations, Mutators or Accessors. A Factory
> is automatically generated for a Schema.
> Mutators can define Validators..... etc. etc. and then you would
> describe the class hierarchy
> of Validators: primitives or types or classes. StringValidators can
> define regular expressions..etc.
>
> Then you could programmatically query the metamodel if you wanted. For
> example, in
> my business logic/python layer, I could find out what validation rules
> would be applied
> if I were to enter a social security number. This kind of capability
> is convenient for
> a) multiple types of UIs: wireless, web, Tkinter/fat client or b) EAI
> -- interfacing with
> legacy systems that contain old data that may or may not be compliant
> with today's business rules.
>
> Sorry for the rambling email, but I have hopefully explained a bit more
> about the sort
> of requirements I am thinking about. Your thoughts?
>
> --Craeg