RE: Prototype OO was Re: Inheritance/defaulting of attributes

John Gossman (JohnGo@asymetrix.com)
Fri, 10 Oct 1997 11:16:31 -0700


I guess an example is in order:

<typedef id="button">
<x type="int" value="0"/>
<y type="int" value="0"/>
<x2 type="int" value="1"/>
<y2 type="int" value="1"/>
<caption type="string" value="button"/>
</typedef>

later we can define an instance of button:

<button id="button1">
<x2 value="100"/>
<y2 value="200"/>
<caption value="Click Here!"/>
</button>

The button instance picks up default values and types from the typedef
(the prototype), and overrides the others.

Furthermore, you can derive a new class:

<typedef id="button-with-graphic" parent-class="button">
<graphic type="string" value=""/>
</typedef>

and a new-instance:

<button-with-graphic id="button2">
<caption value="Click on the picture"/>
<graphic value="folder1.gif"/>
<button-with-graphic/>

-JG


>----------
>From: John Gossman
>Sent: Friday, October 10, 1997 10:38 AM
>To: 'xml-dev@ic.ac.uk'; 'Meltsner, Kenneth J'
>Subject: RE: Prototype OO was Re: Inheritance/defaulting of attributes
>
> This is an excellent idea. For declarative languages especially,
>prototype is a very good model for inheritance because it provides
>default values for data fields and layouts of schemas, which is
>primarily what you need (there is no behavior to inherit). I have used
>this as the basis for my XML based OXF (Open Exchange Format). It seems
>to be easier to understand for those who are not fluent in OO technique.
>
>