Skip to search.

Breaking News Visit Yahoo! News for the latest.

×Close this window

metal-dev · MetaL Development

The Yahoo! Groups Product Blog

Check it out!

Group Information

? Already a member? Sign in to Yahoo!

Yahoo! Groups Tips

Did you know...
Real people. Real stories. See how Yahoo! Groups impacts members worldwide.

Messages

Advanced
Messages Help
Messages 488 - 517 of 555   Oldest  |  < Older  |  Newer >  |  Newest
Messages: Show Message Summaries Sort by Date ^  
#488 From: "comfortablementeadormecido" <terevalis@...>
Date: Mon Jul 17, 2006 5:18 pm
Subject: Re: Dependency
comfortablem...
Send Email Send Email
 
Hi,

Yes the references are nullified indeed, but I ment a cascading
removal of elements that are dependant of the existance of a certain
object.
Using the same example as before: If each State has a Collection of
Cities, when a State is removed, and if the existance of a City
depends on the existance of the corresponding State, then every City
for that state should be removed as well.
Currently the references to the state are set to NULL (by means of
this query = "'UPDATE city SET state=NULL WHERE
state='.strval($this->id)") but then every city that has its State
attribute set to NULL should be removed one by one. Besides, the
persistance of objects with references to other objects set to null is
invalid as a default behaviour. By means of deleting a State you would
be settig every city for that State in an invalid 'situation' (the
word 'state' would have been confusing :p ).

Perhaps I'm getting this all wrong, please correct me if I am. As I
said before I really put a lot of faith in this project as I think it
would be a great help in my job but I still cant convince myself that
the application is fully capable of satisfying my needs. I hope that
by means of questions liike this I am helping clarify and possibly
correct the functionality of the project and not just annoying you.

Thanks for your time and dedication,

Matías

--- In metal-dev@yahoogroups.com, Manuel Lemos <mlemos@...> wrote:
>
> Hello,
>
> on 07/12/2006 03:12 PM comfortablementeadormecido said the following:
> > I keep playing around with metastorage and another thing came to my
> > attention.
> >
> > There is no way to set a dependency between objects. For instance,
> > imagine you have the entities State and City, when you delete a state
> > every city for that state shoud be deleted in order to mantain
> > consistency with the data in the City table (many of them would retain
> > an id to a deleted State). This is obviously easy to do by setting a
> > delete method for the cities and state and another method for the
> > state which would get its collection, call the delete method in each
> > city and then call delete for the current state or a similar
algorithm.
> > But i think it could be considered for a future release that when you
> > set the collection relation you could set such things so you don't end
> > up with two functions to delete a state (the standard and the
custom one).
> >
> > What do you think?
>
> This is already done. When an object is deleted, it is removed from any
> collections that it used to belong. If there are any objects with
> reference variables pointing to the object being deleted, those
> reference variables are set to NULL.
>
> --
>
> Regards,
> Manuel Lemos
>
> Metastorage - Data object relational mapping layer generator
> http://www.metastorage.net/
>
> PHP Classes - Free ready to use OOP components written in PHP
> http://www.phpclasses.org/
>

#489 From: Manuel Lemos <mlemos@...>
Date: Tue Aug 8, 2006 10:12 pm
Subject: Re: Re: Dependency
mallemos
Send Email Send Email
 
Hello,

Sorry for the delay.

on 07/17/2006 02:18 PM comfortablementeadormecido said the following:
> Yes the references are nullified indeed, but I ment a cascading
> removal of elements that are dependant of the existance of a certain
> object.
> Using the same example as before: If each State has a Collection of
> Cities, when a State is removed, and if the existance of a City
> depends on the existance of the corresponding State, then every City
> for that state should be removed as well.
> Currently the references to the state are set to NULL (by means of
> this query = "'UPDATE city SET state=NULL WHERE
> state='.strval($this->id)") but then every city that has its State
> attribute set to NULL should be removed one by one. Besides, the
> persistance of objects with references to other objects set to null is
> invalid as a default behaviour. By means of deleting a State you would
> be settig every city for that State in an invalid 'situation' (the
> word 'state' would have been confusing :p ).
>
> Perhaps I'm getting this all wrong, please correct me if I am. As I
> said before I really put a lot of faith in this project as I think it
> would be a great help in my job but I still cant convince myself that
> the application is fully capable of satisfying my needs. I hope that
> by means of questions liike this I am helping clarify and possibly
> correct the functionality of the project and not just annoying you.

If you want to remove cities that belong to a state, you can delete the
city objects one by one and they automatically will be removed from the
collections they they belonged.

Cascaded deletes can be dangerous. Even if the database supports them, a
simple mistake may wipe the whole database. I never used them. As a
matter of fact, usually I have a removed flag in objects that I may want
to check past information later, rather than actually delete them.

That does not mean it cannot be done. It means it can be done with
proper care. I have just added it to the todo list now so I can
implement it when I have more time.

http://www.meta-language.net/metastorage-progress.xml

--

Regards,
Manuel Lemos

Metastorage - Data object relational mapping layer generator
http://www.metastorage.net/

PHP Classes - Free ready to use OOP components written in PHP
http://www.phpclasses.org/

#490 From: "comfortablementeadormecido" <terevalis@...>
Date: Wed Aug 9, 2006 1:01 pm
Subject: Re: Dependency
comfortablem...
Send Email Send Email
 
Thank you for your attention Manuel.

Regards,
Matías

--- In metal-dev@yahoogroups.com, Manuel Lemos <mlemos@...> wrote:
>
> Hello,
>
> Sorry for the delay.
>
> on 07/17/2006 02:18 PM comfortablementeadormecido said the following:
> > Yes the references are nullified indeed, but I ment a cascading
> > removal of elements that are dependant of the existance of a certain
> > object.
> > Using the same example as before: If each State has a Collection of
> > Cities, when a State is removed, and if the existance of a City
> > depends on the existance of the corresponding State, then every City
> > for that state should be removed as well.
> > Currently the references to the state are set to NULL (by means of
> > this query = "'UPDATE city SET state=NULL WHERE
> > state='.strval($this->id)") but then every city that has its State
> > attribute set to NULL should be removed one by one. Besides, the
> > persistance of objects with references to other objects set to null is
> > invalid as a default behaviour. By means of deleting a State you would
> > be settig every city for that State in an invalid 'situation' (the
> > word 'state' would have been confusing :p ).
> >
> > Perhaps I'm getting this all wrong, please correct me if I am. As I
> > said before I really put a lot of faith in this project as I think it
> > would be a great help in my job but I still cant convince myself that
> > the application is fully capable of satisfying my needs. I hope that
> > by means of questions liike this I am helping clarify and possibly
> > correct the functionality of the project and not just annoying you.
>
> If you want to remove cities that belong to a state, you can delete the
> city objects one by one and they automatically will be removed from the
> collections they they belonged.
>
> Cascaded deletes can be dangerous. Even if the database supports them, a
> simple mistake may wipe the whole database. I never used them. As a
> matter of fact, usually I have a removed flag in objects that I may want
> to check past information later, rather than actually delete them.
>
> That does not mean it cannot be done. It means it can be done with
> proper care. I have just added it to the todo list now so I can
> implement it when I have more time.
>
> http://www.meta-language.net/metastorage-progress.xml
>
> --
>
> Regards,
> Manuel Lemos
>
> Metastorage - Data object relational mapping layer generator
> http://www.metastorage.net/
>
> PHP Classes - Free ready to use OOP components written in PHP
> http://www.phpclasses.org/
>

#491 From: Manuel Lemos <mlemos@...>
Date: Wed Nov 22, 2006 8:31 am
Subject: Report row grouping, Date and time OQL expressions
mallemos
Send Email Send Email
 
Hello,

A new version of Metastorage was released to introduce several
enhancements to the capabilities of report classes and to the Object
Query Language. A few bugs were also fixed in this release.

See here the full news article:
http://www.meta-language.net/news-2006-11-22-metastorage.html

--

Regards,
Manuel Lemos

Metastorage - Data object relational mapping layer generator
http://www.metastorage.net/

PHP Classes - Free ready to use OOP components written in PHP
http://www.phpclasses.org/

#492 From: "dobes_vandermeer" <dobesv@...>
Date: Sun Dec 3, 2006 12:43 am
Subject: XSD schema
dobes_vander...
Send Email Send Email
 
I've been working on an XSD schema for the configuration, so that my
xml editor can do auto-completion and friendly structured editing/
validation.  I've had to modify my copy of xml_parser.php to ignore
attributes since it rejects the declaration saying "Simplified XML
can not have attributes in tags".

Hopefully this idea of te XSD schema is something people will like
and you'll maintain it, or at least make it allowable to use the
schema in your xml.

Example usage:

<?xml version="1.0" encoding="UTF-8"?>
<component xmlns="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://
www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://
www.w3.org/2001/XMLSchema ../../MetaL/metastorage/component.xsd ">


The XSD:


<?xml version="1.0" encoding="UTF-8"?>
<schema targetNamespace="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified" xmlns="http://www.w3.org/2001/
XMLSchema">

     <element name="component" type="componentDef"></element>


     <complexType name="componentDef">
        <sequence>
           <element name="name" type="string" maxOccurs="1"
              minOccurs="1">
           </element>
           <element name="description" type="string" maxOccurs="1"
              minOccurs="0">
           </element>
           <element name="component" type="componentRef"
              maxOccurs="unbounded" minOccurs="0">
           </element>
           <element name="class" type="classDef" maxOccurs="unbounded"
              minOccurs="0">
           </element>
           <element name="factory" type="factoryDef" maxOccurs="1"
              minOccurs="0">
              <annotation>
                 <documentation>
                    The object factory class is a special purpose class
                    that is meant to create new objects from scratch or
                    retrieve them from the persistence container.

                    For each component, there should be only one
factory
                    class. Like the data classes, the factory class may
                    also have customizable functions defined in a
similar
                    way. The only function definition attributes that
are
                    different are the function types and their
                    parameters.

                    The currently supported factory class function
types
                    are: createobject, custom, finishtransaction,
                    getallobjects, getobject and starttransaction.
                 </documentation>
              </annotation>
           </element>
           <element name="schema" type="schemaDef" maxOccurs="1"
              minOccurs="0">
           </element>
        </sequence>
     </complexType>



     <complexType name="classDef">
        <sequence>
           <element name="id" type="string" maxOccurs="1"
              minOccurs="0">
           </element>
           <element name="name" type="string" maxOccurs="1"
              minOccurs="1">
           </element>
           <element name="variable" type="variableDef"
              maxOccurs="unbounded" minOccurs="0">
           </element>
           <element name="collection" type="classCollectionDef"
              maxOccurs="unbounded" minOccurs="0">
                 <annotation>
                    <documentation>
                       (Optional) The relation between the objects of a
                       class with a group of objects of the same or
other
                       class is specified as a collection. A class may
                       specify one or more collections using separate
                       sections for each.
                    </documentation>
                 </annotation>
           </element>
           <element name="validation" type="classValidationDef"
              maxOccurs="unbounded" minOccurs="0">
                 <annotation>
                    <documentation>
                       (Optional) Each class may have defined a set of
                       validation rules to determine the consistency of
                       the data hold in its objects.
                    </documentation>
                 </annotation>
           </element>
           <element name="function" type="factoryFunctionDef"
maxOccurs="unbounded" minOccurs="0"></element>
        </sequence>
     </complexType>

     <complexType name="componentRef">
        <sequence>
           <element name="name" type="string" maxOccurs="1"
minOccurs="1"></element>
           <element name="file" type="string" maxOccurs="1"
minOccurs="1"></element>
        </sequence>
     </complexType>


     <complexType name="variableDef">
        <sequence>
           <element name="name" type="string" maxOccurs="1"
              minOccurs="1">
           </element>
             <element name="was" type="string" maxOccurs="1"
minOccurs="0"></element>
             <element name="type" maxOccurs="1" minOccurs="0">
                <annotation>
                   <documentation>
                      (Required alternative) Each variable must be of a
                      type. The type must be either a basic data type
or
                      a reference to a object of the same or another
                      class. The type tag is used to specify the basic
                      data type of a variable. Supported basic data
types
                      are: text, integer, boolean, float, decimal,
date,
                      time and timestamp.
                   </documentation>
                </annotation>
                <simpleType>
                   <restriction base="string">
                      <enumeration value="text"></enumeration>
                      <enumeration value="integer"></enumeration>
                      <enumeration value="boolean"></enumeration>
                      <enumeration value="float"></enumeration>
                      <enumeration value="decimal"></enumeration>
                      <enumeration value="date"></enumeration>
                      <enumeration value="time"></enumeration>
                      <enumeration value="timestamp"></enumeration>
                   </restriction>
                </simpleType>
             </element>
             <element name="initialvalue" type="string" maxOccurs="1"
              minOccurs="0">
              <annotation>
                 <documentation>
                    A variable of a basic data type may have an initial
                    value. That value is automatically assigned to the
                    variable when the object is created.

                    Also, when a new basic data type variable is added
to
                    a class, the initial value is automatically stored
in
                    the variable for all the previously persisted
                    objects. This is not the case for large data
                    variables.

                    The initialvalue tag is used to specify the initial
                    value of a variable.
                 </documentation>
              </annotation>
           </element>
           <element name="length" type="int" maxOccurs="1"
              minOccurs="0">
           </element>
           <element name="multiline" type="boolean" maxOccurs="1"
              minOccurs="0">
           </element>
           <element name="binary" type="boolean" maxOccurs="1"
              minOccurs="0">
           </element>
           <element name="autocreate" type="string" maxOccurs="1"
              minOccurs="0">
              <annotation>
                 <documentation>
                    A variable may be set to be initialized
automatically
                    with a special value using the autocreate attribute
                    tag. This attribute determines that the variable
will
                    be created with an automatic initial value and will
                    never be changed in subsequent updates of the
object
                    done using a class persist type function.

                    Alternatively, a variable may be set to be
                    initialized and updated automatically with a
special
                    value using the autoupdate attribute tag. This
                    attribute determines that the variable will be set
                    with an automatic value every time the object is
                    updated using a class persist type function,
                    including when the object is created and stored for
                    the first time.

                    Either autocreate and autoupdate variables may not
be
                    changed directly by the applications access the
                    objects of their classes.

                    Currently, only the variables of the types date,
time
                    and timestamp may be defined as autocreate or
                    autoupdate. The values of either of these
attributes
                    may be either localdate and utcdate for date
                    variables, and localtime and utctime for time or
                    timestamp variables. localdate and localtime
                    represent the current date and time in the local
time
                    zone and utcdate and utctime represent the current
                    date and time in the UTC (Universal Time) time
zone.
                 </documentation>
              </annotation>
           </element>
           <element name="autoupdate" type="string" maxOccurs="1"
              minOccurs="0">
           </element>
           <element name="class" type="string" maxOccurs="1"
              minOccurs="0">
              <annotation>
                 <documentation>
                    (Required alternative) Variables may contain
                    references to objects of the same or other classes.
                    The class tag is used to specify the class of
object
                    reference variable. This attribute must contain the
                    name of a class specified in the same component
                    definition or in from another component specified
by
                    the component attribute.
                 </documentation>
              </annotation>
           </element>
           <element name="component" type="string" maxOccurs="1"
              minOccurs="0">
              <annotation>
                 <documentation>
                    A variable may contain a reference to an object of
a
                    class of another component. The component tag is
used
                    to specify the external component that defines the
                    reference class. The specified external component
                    must be previously declared in the current
component
                    definition.
                 </documentation>
              </annotation>
           </element>
        </sequence>
     </complexType>

     <complexType name="classCollectionDef">
        <sequence>
           <element name="name" type="string" maxOccurs="1"
              minOccurs="1">
              <annotation>
                 <documentation>
                    (Required) Each collection must have a unique name
                    that may not be the same as of any variables of the
                    class.
                 </documentation>
              </annotation>
           </element>
           <element name="was" type="string" maxOccurs="1"
              minOccurs="0">
                 <annotation>
                    <documentation>
                       (Required when renaming a collection) The was
tag
                       must be used to specify the previous name of a
                       collection when it is renamed.
                    </documentation>
                 </annotation>
           </element>
           <element name="class" type="string" maxOccurs="1"
              minOccurs="1">
                 <annotation>
                    <documentation>
                       (Required) A collection references objects a of
a
                       specified class.
                    </documentation>
                 </annotation>
           </element>
           <element name="component" type="string" maxOccurs="1"
              minOccurs="0">
                 <annotation>
                    <documentation>
                       A collection may contain objects of a class of
                       another component. The component tag is used to
                       specify the external component that defines the
                       collection class. The specified external
component
                       must be previously declared in the current
                       component definition.
                    </documentation>
                 </annotation>
           </element>
           <element name="reference" type="string" maxOccurs="1"
minOccurs="1">
              <annotation>
                 <documentation>
                    (Required) A collection reference specifies a
                    variable or another collection of the referenced
                    class.
                 </documentation>
              </annotation></element>
        </sequence>
     </complexType>

     <complexType name="classValidationDef">
        <sequence>
           <element name="type" type="string" maxOccurs="1"
              minOccurs="1">
              <annotation>
                 <documentation>
                    (Required) Each validation must be of a specific
                    type. Currently the types of validation that are
                    supported are: notempty and unique.
                 </documentation>
              </annotation>
           </element>
           <element name="errorcode" type="string" maxOccurs="1"
              minOccurs="0">
              <annotation>
                 <documentation>
                    (Optional) A class may verify several types of
                    validation rules at once. If one validation rule
does
                    not verify, applications may need to know which
rule
                    has failed. An errorcode maybe associated with each
                    validation rule to let applications act upon the
rule
                    that failed.
                 </documentation>
              </annotation>
           </element>
           <element name="parameters"
              type="classValidationParametersDef" maxOccurs="1"
              minOccurs="0">
                 <annotation>
                    <documentation>
                       (Required depending on rule type) Each type of
                       validation may need additional parameters that
                       define the details of the scope of the
validation.

                       notempty rule

                       The notempty validation verifies that one or
more
                       text specified class variables are set to a non
                       empty string.

                       The validation specific parameters consist of
the
                       list of variables specified using the variable
tag
                       for each variable to be checked.

                       unique rule

                       The unique validation verifies that there is no
                       other stored object with the same combination of
                       values of a group of class variables of a given
                       object.

                       The validation specific parameters consist of
the
                       list of variables specified using the variable
tag
                       with the combination of values to be verified as
                       unique.
                    </documentation>
                 </annotation>
           </element>
        </sequence>
     </complexType>

     <complexType name="classFunctionDef">
        <sequence>
           <element name="name" type="string" maxOccurs="1"
              minOccurs="1">
           </element>
           <element name="type" maxOccurs="1" minOccurs="1">
              <annotation>
                 <documentation>
                    (Required) Each data class function is of a
specified
                    type defined according to the function purpose.
                    Currently the types of functions that are supported
                    are: addtocollection, delete, custom,
getcollection,
                    getlargedata, getreference, persist,
                    removefromcollection, setlargedata, setreference
and
                    validate.
                 </documentation>
              </annotation>
              <simpleType>
                 <restriction base="string">
                    <enumeration value="addtocollection"></enumeration>
                    <enumeration value="delete"></enumeration>
                    <enumeration value="custom"></enumeration>
                    <enumeration value="getcollection"></enumeration>
                    <enumeration value="getlargedata"></enumeration>
                    <enumeration value="getreference"></enumeration>
                    <enumeration value="persist"></enumeration>
                    <enumeration value="removefromcollection"></
enumeration>
                    <enumeration value="setlargedata"></enumeration>
                    <enumeration value="setreference"></enumeration>
                    <enumeration value="validate"></enumeration>
                 </restriction>
              </simpleType>
           </element>
           <element name="argument" type="classFunctionArgumentDef"
              maxOccurs="unbounded" minOccurs="0">
              <annotation>
                 <documentation>
                    (Optional) Some types of function may take
additional
                    arguments that can be used to configure details of
                    the function behavior using values that are only be
                    defined at run time by the application that calls
the
                    function.

                    This is the case for instance of functions that
                    search for objects of a given class may take
                    arguments that define values that can be used in a
                    filter condition parameters.

                    A class function may have multiple custom
arguments.
                    If there are arguments that were defined but
actually
                    are not used in the function, probably because they
                    were forgotten or for some other type of mistake,
                    Metastorage fails specifying which argument was
left
                    unused.

                    Each argument is defined separately in sections
that
                    start with the tag argument. The argument details
are
                    defined inside the respective section.
                 </documentation>
              </annotation>
           </element>
           <element name="parameters"
type="classFunctionParametersDef"></element>
        </sequence>
     </complexType>

     <complexType name="autofunction"></complexType>

     <complexType name="classValidationParametersDef"></complexType>



     <complexType name="classFunctionArgumentDef">
        <sequence>
           <element name="name" type="string" maxOccurs="1"
              minOccurs="1">
           </element>
           <element name="type" maxOccurs="1" minOccurs="0">
              <annotation>
                 <documentation>
                    The type of the argument is also a required
parameter
                    when the argument type is scalar or an array or an
                    hash table. Currently supported scalar argument
types
                    are: integer, text, float, decimal, boolean, time,
                    date, timestamp, array and hashtable.
                 </documentation>
              </annotation>
              <simpleType>
                 <restriction base="string">
                    <enumeration value="integer"></enumeration>
                    <enumeration value="text"></enumeration>
                    <enumeration value="float"></enumeration>
                    <enumeration value="decimal"></enumeration>
                    <enumeration value="boolean"></enumeration>
                    <enumeration value="time"></enumeration>
                    <enumeration value="date"></enumeration>
                    <enumeration value="timestamp"></enumeration>
                    <enumeration value="array"></enumeration>
                    <enumeration value="hashtable"></enumeration>
                 </restriction>
              </simpleType>
           </element>
           <element name="class" type="string" maxOccurs="1"
              minOccurs="0">
              <annotation>
                 <documentation>
                    An argument may also be a reference to an object.
The
                    class parameter specifies the name of a class of
the
                    object argument.
                 </documentation>
              </annotation>
           </element>
           <element name="oid" type="string" maxOccurs="1"
              minOccurs="0">
              <annotation>
                 <documentation>
                    An object argument may also be passed by using its
                    object identifier value (oid). For object arguments
                    of classes with an implicit oid, the argument is an
                    integer number usually stored in the id class
                    variable. An object identifier arguments is
specified
                    using an empty oid parameter.
                 </documentation>
              </annotation>
           </element>
           <element name="component" type="string" maxOccurs="1"
              minOccurs="0">
              <annotation>
                 <documentation>
                    An argument may be an object of a class defined in
an
                    external component definition. The component
                    parameter specifies the name of the external
                    component on which the object class is defined.
                 </documentation>
              </annotation>
           </element>
        </sequence>
     </complexType>

     <complexType name="classFunctionParametersDef">
        <sequence>
           <element name="collection" type="string" maxOccurs="1"
              minOccurs="0">
           </element>
           <element name="object"
type="classFunctionParametersObjectDef"
              maxOccurs="1" minOccurs="0">
           </element>
           <element name="do" type="string" maxOccurs="1"
              minOccurs="0">
              <annotation>
                 <documentation>
                    Custom code for a "custom" type function.
                 </documentation>
              </annotation>
           </element>
           <element name="return"
type="classFunctionParametersReturnDef"
              maxOccurs="1" minOccurs="0">
           </element>
           <element name="class" type="string" maxOccurs="1"
              minOccurs="0">
           </element>
           <element name="id" type="classFunctionParametersIdDef"
maxOccurs="1" minOccurs="0"></element>
        </sequence>
     </complexType>

     <complexType name="classFunctionParametersObjectDef">
        <sequence>
           <element name="argument" type="string" maxOccurs="1"
minOccurs="0"></element>
        </sequence>
     </complexType>

     <complexType name="classFunctionParametersReturnDef">
        <sequence>
           <element name="type" maxOccurs="1" minOccurs="0">
              <simpleType>
                 <restriction base="string">
                    <enumeration value="integer"></enumeration>
                    <enumeration value="text"></enumeration>
                    <enumeration value="float"></enumeration>
                    <enumeration value="decimal"></enumeration>
                    <enumeration value="boolean"></enumeration>
                    <enumeration value="time"></enumeration>
                    <enumeration value="date"></enumeration>
                    <enumeration value="timestamp"></enumeration>
                    <enumeration value="array"></enumeration>
                    <enumeration value="hashtable"></enumeration>
                 </restriction>
              </simpleType>
           </element>
           <element name="class" type="string" maxOccurs="1"
              minOccurs="0">
           </element>
           <element name="oid" type="string" maxOccurs="1"
              minOccurs="0">
           </element>
           <element name="component" type="string" maxOccurs="1"
minOccurs="0"></element>
        </sequence>
     </complexType>

     <complexType name="factoryDef">
        <sequence>
           <element name="name" type="string" maxOccurs="1"
              minOccurs="1">
           </element>
           <element name="function" type="factoryFunctionDef"
maxOccurs="unbounded" minOccurs="0"></element>
        </sequence>
     </complexType>

     <complexType name="factoryFunctionDef">
        <sequence>
           <element name="name" type="string" maxOccurs="1"
              minOccurs="1">
           </element>
           <element name="type" maxOccurs="1" minOccurs="1">
              <annotation>
                 <documentation>
                    The currently supported factory class function
types
                    are: createobject, custom, finishtransaction,
                    getallobjects, getobject and starttransaction.
                 </documentation>
              </annotation>
              <simpleType>
                 <restriction base="string">
                    <enumeration value="createobject"></enumeration>
                    <enumeration value="custom"></enumeration>
                    <enumeration value="finishtransaction"></
enumeration>
                    <enumeration value="getallobjects"></enumeration>
                    <enumeration value="getobject"></enumeration>
                    <enumeration value="starttransaction"></
enumeration>
                 </restriction>
              </simpleType>
           </element>
           <element name="argument" type="classFunctionArgumentDef"
              maxOccurs="unbounded" minOccurs="0">
              <annotation>
                 <documentation>
                    (Optional) Some types of function may take
additional
                    arguments that can be used to configure details of
                    the function behavior using values that are only be
                    defined at run time by the application that calls
the
                    function.

                    This is the case for instance of functions that
                    search for objects of a given class may take
                    arguments that define values that can be used in a
                    filter condition parameters.

                    A class function may have multiple custom
arguments.
                    If there are arguments that were defined but
actually
                    are not used in the function, probably because they
                    were forgotten or for some other type of mistake,
                    Metastorage fails specifying which argument was
left
                    unused.

                    Each argument is defined separately in sections
that
                    start with the tag argument. The argument details
are
                    defined inside the respective section.
                 </documentation>
              </annotation>
           </element>
           <element name="parameters"
type="classFunctionParametersDef" maxOccurs="unbounded"
minOccurs="0"></element>
        </sequence>
     </complexType>


     <complexType name="schemaDef">
         <annotation>
            <documentation>
               The schema setup class is also a special purpose class
               that is meant to provide services to setup a data schema
               to store the objects in the persistence container.

               For each component, there should be only one schema
setup
               class. Like the data classes and the factory class, the
               schema setup class may also have customizable functions
               defined in a similar way.

               The only currently supported schema setup class function
               types is installschema.
            </documentation>
         </annotation>
         <sequence maxOccurs="1" minOccurs="1">
           <element name="function" type="schemaFunctionDef"
maxOccurs="unbounded" minOccurs="0"></element>

        </sequence>
     </complexType>

     <complexType name="schemaFunctionDef">
        <sequence>
           <element name="name" maxOccurs="1" minOccurs="1">
                 <annotation>
                    <documentation>
                       A installschema type function does all that is
                       necessary to install the data schema in the
                       persistence container. The meaning of this
action
                       depends on the type of persistence container
being
                       used.

                       Currently the only type persistence container
that
                       is supported are SQL based relational databases.
                       For this type of persistence container, this
                       function installs the database schema.

                       The generated function is of type BOOLEAN. It
                       returns true if it succeeded or false if there
was
                       an execution error. This function does not take
                       any parameters.
                    </documentation>
                 </annotation>
                 <simpleType>
                 <restriction base="string"></restriction>
              </simpleType>
           </element>
           <element name="type" maxOccurs="1" minOccurs="1">
              <simpleType>
                 <restriction base="string">
                    <enumeration value="installschema"></enumeration>
                 </restriction>
              </simpleType>
           </element>
        </sequence>
     </complexType>

     <complexType name="classFunctionParametersIdDef">
        <sequence>
           <element name="argument" type="string" maxOccurs="1"
minOccurs="1"></element>
        </sequence>
     </complexType>
</schema>

#493 From: Manuel Lemos <mlemos@...>
Date: Tue Dec 12, 2006 7:11 pm
Subject: Re: XSD schema
mallemos
Send Email Send Email
 
Hello,

on 12/02/2006 10:43 PM dobes_vandermeer said the following:
> I've been working on an XSD schema for the configuration, so that my
> xml editor can do auto-completion and friendly structured editing/
> validation.  I've had to modify my copy of xml_parser.php to ignore
> attributes since it rejects the declaration saying "Simplified XML
> can not have attributes in tags".
>
> Hopefully this idea of te XSD schema is something people will like
> and you'll maintain it, or at least make it allowable to use the
> schema in your xml.

Sorry for the delay. I have been at PHP Conference Brasil 2006 and I am
still catching up on pending e-mail.

I need to make time to look at this closer, but you do not need to hack
the XML parser class, it the simplified XML option is controlled by the
MetaL compiler.

I was not aware that when you specify the schema with a XML file for
MetaL engine, the schema als gets parsed. I need to look closer at this
to avoid thes problems.

Anyway, I use Kate to edit my project files. I am not sure if it
supports XML schema based validation or auto-completion . Which editor
do you use that makes use of the XML schema?

As for the schema file, it may be useful to distribute with Metastorage,
if you would not mind. Of course you would be credited for your
contribution.

--

Regards,
Manuel Lemos

Metastorage - Data object relational mapping layer generator
http://www.metastorage.net/

PHP Classes - Free ready to use OOP components written in PHP
http://www.phpclasses.org/

#494 From: "Dobes Vandermeer" <dobesv@...>
Date: Tue Dec 12, 2006 7:50 pm
Subject: Re: XSD schema
dobes_vander...
Send Email Send Email
 
Of course you're welcome to distribute the file.

The point I was making about the XML parser is that it rejects the
schema declaration, which must be included in the xml file in order
for validation to function.  For example, the root tag for the
component is:

<?xml version="1.0" encoding="UTF-8"?>
<component xmlns="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://
www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://
www.w3.org/2001/XMLSchema ../../MetaL/metastorage/component.xsd ">

The xsd itself is not parsed, but these attributes on the root tag
*are* parsed (and rejected) by the metaL parser.  It would be great if
the simplified XML parser would allow these tags on the root tag of
the document.

I'm using the eclipse wed development toolkit, which has a validating
XML editor that also allows you to view the XML in a structured view.
It's quite nice, and being able to use auto-complete and see any
mistakes can make editing and understanding the file a bit easier.

I don't think that the xsd there is complete, however.  But it is a start.

On 12/12/06, Manuel Lemos <mlemos@...> wrote:
> Hello,
>
> on 12/02/2006 10:43 PM dobes_vandermeer said the following:
> > I've been working on an XSD schema for the configuration, so that my
> > xml editor can do auto-completion and friendly structured editing/
> > validation.  I've had to modify my copy of xml_parser.php to ignore
> > attributes since it rejects the declaration saying "Simplified XML
> > can not have attributes in tags".
> >
> > Hopefully this idea of te XSD schema is something people will like
> > and you'll maintain it, or at least make it allowable to use the
> > schema in your xml.
>
> Sorry for the delay. I have been at PHP Conference Brasil 2006 and I am
> still catching up on pending e-mail.
>
> I need to make time to look at this closer, but you do not need to hack
> the XML parser class, it the simplified XML option is controlled by the
> MetaL compiler.
>
> I was not aware that when you specify the schema with a XML file for
> MetaL engine, the schema als gets parsed. I need to look closer at this
> to avoid thes problems.
>
> Anyway, I use Kate to edit my project files. I am not sure if it
> supports XML schema based validation or auto-completion . Which editor
> do you use that makes use of the XML schema?
>
> As for the schema file, it may be useful to distribute with Metastorage,
> if you would not mind. Of course you would be credited for your
> contribution.
>
> --
>
> Regards,
> Manuel Lemos
>
> Metastorage - Data object relational mapping layer generator
> http://www.metastorage.net/
>
> PHP Classes - Free ready to use OOP components written in PHP
> http://www.phpclasses.org/
>
>
>
> Yahoo! Groups Links
>
>
>
>

#495 From: "hofer_juerg" <hofer_juerg@...>
Date: Thu Dec 14, 2006 8:26 am
Subject: Modelling for Metastorage with Poseidon
hofer_juerg
Send Email Send Email
 
Hello
i'm trying to convert a UML-Model built with Poseidon to Metastorage format.
Instead of the
expected code I find only a lot of Numbers in the generated document.
Does anyone have an idea what might go wrong ?

Thanks

Juerg

#496 From: Manuel Lemos <mlemos@...>
Date: Thu Dec 14, 2006 9:07 pm
Subject: Re: Modelling for Metastorage with Poseidon
mallemos
Send Email Send Email
 
Hello,

on 12/14/2006 06:26 AM hofer_juerg said the following:
> i'm trying to convert a UML-Model built with Poseidon to Metastorage format.
Instead of the
> expected code I find only a lot of Numbers in the generated document.
> Does anyone have an idea what might go wrong ?

What do you mean by a lot of numbers?

Are you saving Poseidon model in XMI? Are you converting the XMI to
Metastorage component format with xmi2ms?

--

Regards,
Manuel Lemos

Metastorage - Data object relational mapping layer generator
http://www.metastorage.net/

PHP Classes - Free ready to use OOP components written in PHP
http://www.phpclasses.org/

#497 From: Manuel Lemos <mlemos@...>
Date: Thu Dec 14, 2006 9:09 pm
Subject: Re: XSD schema
mallemos
Send Email Send Email
 
Hello,

on 12/12/2006 05:50 PM Dobes Vandermeer said the following:
> Of course you're welcome to distribute the file.
>
> The point I was making about the XML parser is that it rejects the
> schema declaration, which must be included in the xml file in order
> for validation to function.  For example, the root tag for the
> component is:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <component xmlns="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://
> www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://
> www.w3.org/2001/XMLSchema ../../MetaL/metastorage/component.xsd ">
>
> The xsd itself is not parsed, but these attributes on the root tag
> *are* parsed (and rejected) by the metaL parser.  It would be great if
> the simplified XML parser would allow these tags on the root tag of
> the document.

Oh, I see. I will look into that soon so it stops complaining.


> I'm using the eclipse wed development toolkit, which has a validating
> XML editor that also allows you to view the XML in a structured view.
> It's quite nice, and being able to use auto-complete and see any
> mistakes can make editing and understanding the file a bit easier.

Ok, I do not use Eclipse because it is too heavy, but I will take a look
at that soon to see how it works.


> I don't think that the xsd there is complete, however.  But it is a start.

Sure. I will include it Metastorage distribution and credit you in the
next release . If necessary I will try to improve it to make it more
usable. Thanks for your contribution.

--

Regards,
Manuel Lemos

Metastorage - Data object relational mapping layer generator
http://www.metastorage.net/

PHP Classes - Free ready to use OOP components written in PHP
http://www.phpclasses.org/

#498 From: Peter Howard <pjh@...>
Date: Thu Dec 14, 2006 10:39 pm
Subject: Re: Modelling for Metastorage with Poseidon
pjhacnau
Send Email Send Email
 
On Thu, 2006-12-14 at 19:07 -0200, Manuel Lemos wrote:
> Hello,
>
> on 12/14/2006 06:26 AM hofer_juerg said the following:
> > i'm trying to convert a UML-Model built with Poseidon to Metastorage
> format. Instead of the
> > expected code I find only a lot of Numbers in the generated
> document.
> > Does anyone have an idea what might go wrong ?
>
> What do you mean by a lot of numbers?
>
> Are you saving Poseidon model in XMI? Are you converting the XMI to
> Metastorage component format with xmi2ms?

Following up on that . . .

I never tested with output from Poseidon.  If you can mail me the model
as XMI I can have a play and see what's happening.

PJH




[Non-text portions of this message have been removed]

#499 From: "hofer_juerg" <hofer_juerg@...>
Date: Fri Dec 15, 2006 12:35 pm
Subject: Re: Modelling for Metastorage with Poseidon
hofer_juerg
Send Email Send Email
 
Hello again

> > What do you mean by a lot of numbers?
> >
the created component-file, i.e. the output of xmi2ms begins with a xml-header,
the rest
of the document appear to be just a lot of random numbers.

> > Are you saving Poseidon model in XMI? Are you converting the XMI to
> > Metastorage component format with xmi2ms?

yes to this

> I never tested with output from Poseidon.  If you can mail me the model
> as XMI I can have a play and see what's happening.
>
yes, will send a zip with Model .zuml as produced with poseidon ce 4.2.1 and as
.xmi and
result from this

#500 From: "hofer_juerg" <hofer_juerg@...>
Date: Fri Dec 15, 2006 1:21 pm
Subject: Re: Modelling for Metastorage with Poseidon
hofer_juerg
Send Email Send Email
 
ok, tried to send you mail with attachment which didn't work. So here the
content of the
xmi-file which I fed the xmi2ms-converter.
Juerg

<?xml version = '1.0' encoding = 'UTF-8' ?>
<XMI xmi.version = '1.2' xmlns:UML = 'org.omg.xmi.namespace.UML' xmlns:UML2 =
'org.omg.xmi.namespace.UML2'
   timestamp = 'Fri Dec 15 12:13:05 CET 2006'>
   <XMI.header><XMI.documentation>
     <XMI.exporter>Netbeans XMI Writer</XMI.exporter>
     <XMI.exporterVersion>1.0</XMI.exporterVersion>
     <XMI.metaModelVersion>1.4.4</XMI.metaModelVersion></XMI.documentation>
   </XMI.header>
   <XMI.content>
     <UML:Model xmi.id = 'I122971bm10f72416043mm7e6a' name = 'Persistent'
isSpecification = 'false'
       isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
       <UML:Namespace.ownedElement>
         <UML:Package xmi.id = 'I122971bm10f72416043mm7e60' name = 'Persistent'
visibility = 'public'
           isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract
= 'false'>
           <UML:Namespace.ownedElement>
             <UML:Class xmi.id = 'I122971bm10f72416043mm7e50' name = 'Customer'
visibility = 'public'
               isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
isAbstract = 'false'
               isActive = 'false'>
               <UML:Classifier.feature>
                 <UML:Attribute xmi.id = 'I122971bm10f72416043mm7e34' name =
'nachname' visibility = 'private'
                   isSpecification = 'false' ownerScope = 'instance'
changeability = 'changeable'>
                   <UML2:TypedElement.type>
                     <UML:DataType xmi.idref = 'I122971bm10f72416043mm7dde'/>
                   </UML2:TypedElement.type>
                 </UML:Attribute>
                 <UML:Attribute xmi.id = 'I122971bm10f72416043mm7d9e' name =
'ort'
visibility = 'private'
                   isSpecification = 'false' ownerScope = 'instance'
changeability = 'changeable'>
                   <UML2:TypedElement.type>
                     <UML:DataType xmi.idref = 'I122971bm10f72416043mm7dde'/>
                   </UML2:TypedElement.type>
                 </UML:Attribute>
               </UML:Classifier.feature>
             </UML:Class>
             <UML:Class xmi.id = 'I122971bm10f72416043mm7d0f' name = 'Order'
visibility
= 'public'
               isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
isAbstract = 'false'
               isActive = 'false'>
               <UML:Classifier.feature>
                 <UML:Attribute xmi.id = 'I122971bm10f72416043mm7ccd' name =
'datum'
visibility = 'private'
                   isSpecification = 'false' ownerScope = 'instance'
changeability = 'changeable'>
                   <UML2:TypedElement.type>
                     <UML:DataType xmi.idref = 'I122971bm10f72416043mm7c7d'/>
                   </UML2:TypedElement.type>
                 </UML:Attribute>
                 <UML:Attribute xmi.id = 'I122971bm10f72416043mm7c3d' name =
'status'
visibility = 'private'
                   isSpecification = 'false' ownerScope = 'instance'
changeability = 'changeable'>
                   <UML2:TypedElement.type>
                     <UML:DataType xmi.idref = 'I122971bm10f72416043mm7e38'/>
                   </UML2:TypedElement.type>
                 </UML:Attribute>
               </UML:Classifier.feature>
             </UML:Class>
             <UML:Association xmi.id = 'I122971bm10f72416043mm7be7'
isSpecification =
'false'
               isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
               <UML:Association.connection>
                 <UML:AssociationEnd xmi.id = 'I122971bm10f72416043mm7bed'
visibility =
'public'
                   isSpecification = 'false' isNavigable = 'true' ordering =
'unordered' aggregation
= 'none'
                   targetScope = 'instance' changeability = 'changeable'>
                   <UML:AssociationEnd.multiplicity>
                     <UML:Multiplicity xmi.id = 'I122971bm10f72416043mm7beb'>
                       <UML:Multiplicity.range>
                         <UML:MultiplicityRange xmi.id =
'I122971bm10f72416043mm7bec' lower
= '1'
                           upper = '1'/>
                       </UML:Multiplicity.range>
                     </UML:Multiplicity>
                   </UML:AssociationEnd.multiplicity>
                   <UML:AssociationEnd.participant>
                     <UML:Class xmi.idref = 'I122971bm10f72416043mm7e50'/>
                   </UML:AssociationEnd.participant>
                 </UML:AssociationEnd>
                 <UML:AssociationEnd xmi.id = 'I122971bm10f72416043mm7bea'
visibility =
'public'
                   isSpecification = 'false' isNavigable = 'true' ordering =
'unordered' aggregation
= 'none'
                   targetScope = 'instance' changeability = 'changeable'>
                   <UML:AssociationEnd.multiplicity>
                     <UML:Multiplicity xmi.id = 'I122971bm10f72416043mm7bc5'>
                       <UML:Multiplicity.range>
                         <UML:MultiplicityRange xmi.id =
'I122971bm10f72416043mm7bc4' lower
= '0'
                           upper = '-1'/>
                       </UML:Multiplicity.range>
                     </UML:Multiplicity>
                   </UML:AssociationEnd.multiplicity>
                   <UML:AssociationEnd.participant>
                     <UML:Class xmi.idref = 'I122971bm10f72416043mm7d0f'/>
                   </UML:AssociationEnd.participant>
                 </UML:AssociationEnd>
               </UML:Association.connection>
             </UML:Association>
             <UML:Class xmi.id = 'I122971bm10f72416043mm7bc3' name =
'OrderDetail'
visibility = 'public'
               isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
isAbstract = 'false'
               isActive = 'false'>
               <UML:Classifier.feature>
                 <UML:Attribute xmi.id = 'I122971bm10f72416043mm7bab' name =
'quantitaet'
                   visibility = 'private' isSpecification = 'false' ownerScope =
'instance'
                   changeability = 'changeable'>
                   <UML2:TypedElement.type>
                     <UML:DataType xmi.idref = 'I122971bm10f72416043mm7e38'/>
                   </UML2:TypedElement.type>
                 </UML:Attribute>
               </UML:Classifier.feature>
             </UML:Class>
             <UML:Association xmi.id = 'I122971bm10f72416043mm7b55'
isSpecification =
'false'
               isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
               <UML:Association.connection>
                 <UML:AssociationEnd xmi.id = 'I122971bm10f72416043mm7b5b'
visibility =
'public'
                   isSpecification = 'false' isNavigable = 'true' ordering =
'unordered' aggregation
= 'aggregate'
                   targetScope = 'instance' changeability = 'changeable'>
                   <UML:AssociationEnd.multiplicity>
                     <UML:Multiplicity xmi.id = 'I122971bm10f72416043mm7b59'>
                       <UML:Multiplicity.range>
                         <UML:MultiplicityRange xmi.id =
'I122971bm10f72416043mm7b5a' lower
= '1'
                           upper = '1'/>
                       </UML:Multiplicity.range>
                     </UML:Multiplicity>
                   </UML:AssociationEnd.multiplicity>
                   <UML:AssociationEnd.participant>
                     <UML:Class xmi.idref = 'I122971bm10f72416043mm7d0f'/>
                   </UML:AssociationEnd.participant>
                 </UML:AssociationEnd>
                 <UML:AssociationEnd xmi.id = 'I122971bm10f72416043mm7b58'
visibility =
'public'
                   isSpecification = 'false' isNavigable = 'true' ordering =
'unordered' aggregation
= 'none'
                   targetScope = 'instance' changeability = 'changeable'>
                   <UML:AssociationEnd.multiplicity>
                     <UML:Multiplicity xmi.id = 'I122971bm10f72416043mm7a12'>
                       <UML:Multiplicity.range>
                         <UML:MultiplicityRange xmi.id =
'I122971bm10f72416043mm7a11' lower
= '0'
                           upper = '-1'/>
                       </UML:Multiplicity.range>
                     </UML:Multiplicity>
                   </UML:AssociationEnd.multiplicity>
                   <UML:AssociationEnd.participant>
                     <UML:Class xmi.idref = 'I122971bm10f72416043mm7bc3'/>
                   </UML:AssociationEnd.participant>
                 </UML:AssociationEnd>
               </UML:Association.connection>
             </UML:Association>
             <UML:Class xmi.id = 'I122971bm10f72416043mm7b33' name = 'Item'
visibility =
'public'
               isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
isAbstract = 'false'
               isActive = 'false'>
               <UML:Classifier.feature>
                 <UML:Attribute xmi.id = 'I122971bm10f72416043mm7af1' name =
'gewicht'
visibility = 'private'
                   isSpecification = 'false' ownerScope = 'instance'
changeability = 'changeable'>
                   <UML2:TypedElement.type>
                     <UML:DataType xmi.idref = 'I122971bm10f72416043mm7e38'/>
                   </UML2:TypedElement.type>
                 </UML:Attribute>
                 <UML:Attribute xmi.id = 'I122971bm10f72416043mm7a62' name =
'bezeichnung'
                   visibility = 'private' isSpecification = 'false' ownerScope =
'instance'
                   changeability = 'changeable'>
                   <UML2:TypedElement.type>
                     <UML:DataType xmi.idref = 'I122971bm10f72416043mm7dde'/>
                   </UML2:TypedElement.type>
                 </UML:Attribute>
               </UML:Classifier.feature>
             </UML:Class>
             <UML:Association xmi.id = 'I122971bm10f72416043mm7b1a'
isSpecification =
'false'
               isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
               <UML:Association.connection>
                 <UML:AssociationEnd xmi.id = 'I122971bm10f72416043mm7b20'
visibility =
'public'
                   isSpecification = 'false' isNavigable = 'false' ordering =
'unordered'
aggregation = 'none'
                   targetScope = 'instance' changeability = 'changeable'>
                   <UML:AssociationEnd.multiplicity>
                     <UML:Multiplicity xmi.id = 'I122971bm10f72416043mm7a10'>
                       <UML:Multiplicity.range>
                         <UML:MultiplicityRange xmi.id =
'I122971bm10f72416043mm7a0f' lower
= '0'
                           upper = '-1'/>
                       </UML:Multiplicity.range>
                     </UML:Multiplicity>
                   </UML:AssociationEnd.multiplicity>
                   <UML:AssociationEnd.participant>
                     <UML:Class xmi.idref = 'I122971bm10f72416043mm7bc3'/>
                   </UML:AssociationEnd.participant>
                 </UML:AssociationEnd>
                 <UML:AssociationEnd xmi.id = 'I122971bm10f72416043mm7b1d'
visibility =
'public'
                   isSpecification = 'false' isNavigable = 'true' ordering =
'unordered' aggregation
= 'none'
                   targetScope = 'instance' changeability = 'changeable'>
                   <UML:AssociationEnd.multiplicity>
                     <UML:Multiplicity xmi.id = 'I122971bm10f72416043mm7b1b'>
                       <UML:Multiplicity.range>
                         <UML:MultiplicityRange xmi.id =
'I122971bm10f72416043mm7b1c' lower
= '1'
                           upper = '1'/>
                       </UML:Multiplicity.range>
                     </UML:Multiplicity>
                   </UML:AssociationEnd.multiplicity>
                   <UML:AssociationEnd.participant>
                     <UML:Class xmi.idref = 'I122971bm10f72416043mm7b33'/>
                   </UML:AssociationEnd.participant>
                 </UML:AssociationEnd>
               </UML:Association.connection>
             </UML:Association>
           </UML:Namespace.ownedElement>
         </UML:Package>
         <UML:Package xmi.id = 'I122971bm10f72416043mm7e36' name = 'java'
isSpecification = 'false'
           isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
           <UML:Namespace.ownedElement>
             <UML:Package xmi.id = 'I122971bm10f72416043mm7e37' name = 'lang'
isSpecification = 'false'
               isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
               <UML:Namespace.ownedElement>
                 <UML:DataType xmi.id = 'I122971bm10f72416043mm7e38' name = 'int'
isSpecification = 'false'
                   isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
                 <UML:DataType xmi.id = 'I122971bm10f72416043mm7e35' name =
'void'
isSpecification = 'false'
                   isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
               </UML:Namespace.ownedElement>
             </UML:Package>
             <UML:Package xmi.id = 'I122971bm10f72416043mm7e21' name = 'util'
isSpecification = 'false'
               isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
               <UML:Namespace.ownedElement>
                 <UML:Interface xmi.id = 'I122971bm10f72416043mm7e22' name =
'Collection'
                   isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
isAbstract = 'false'/>
               </UML:Namespace.ownedElement>
             </UML:Package>
           </UML:Namespace.ownedElement>
         </UML:Package>
         <UML:Stereotype xmi.id = 'I122971bm10f72416043mm7e23' name = 'accessor'
           isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract
= 'false'>
           <UML:Stereotype.baseClass>Dependency</UML:Stereotype.baseClass>
         </UML:Stereotype>
         <UML:TagDefinition xmi.id = 'I122971bm10f72416043mm7e08' name =
'documentation'
           isSpecification = 'false'>
           <UML:TagDefinition.multiplicity>
             <UML:Multiplicity xmi.id = 'I122971bm10f72416043mm7e07'>
               <UML:Multiplicity.range>
                 <UML:MultiplicityRange xmi.id = 'I122971bm10f72416043mm7e06'
lower = '1'
                   upper = '1'/>
               </UML:Multiplicity.range>
             </UML:Multiplicity>
           </UML:TagDefinition.multiplicity>
         </UML:TagDefinition>
         <UML:DataType xmi.id = 'I122971bm10f72416043mm7dde' name = 'String'
isSpecification = 'false'
           isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
         <UML:DataType xmi.id = 'I122971bm10f72416043mm7c7d' name = 'Date'
isSpecification = 'false'
           isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
         <UML:TagDefinition xmi.id = 'I122971bm10f72416043mm7a0e' name = 'Name'
isSpecification = 'false'>
           <UML:TagDefinition.multiplicity>
             <UML:Multiplicity xmi.id = 'I122971bm10f72416043mm7a0d'>
               <UML:Multiplicity.range>
                 <UML:MultiplicityRange xmi.id = 'I122971bm10f72416043mm7a0c'
lower = '1'
                   upper = '1'/>
               </UML:Multiplicity.range>
             </UML:Multiplicity>
           </UML:TagDefinition.multiplicity>
         </UML:TagDefinition>
       </UML:Namespace.ownedElement>
     </UML:Model>
     <UML:Diagram xmi.id = 'I122971bm10f72416043mm7e69' isVisible = 'true' name =
'Persistent'
       zoom = '1.0'>
       <UML:GraphElement.position>
         <XMI.field>0.0</XMI.field>
         <XMI.field>0.0</XMI.field>
       </UML:GraphElement.position>
       <UML:GraphNode.size>
         <XMI.field>0.0</XMI.field>
         <XMI.field>0.0</XMI.field>
       </UML:GraphNode.size>
       <UML:Diagram.viewport>
         <XMI.field>0.0</XMI.field>
         <XMI.field>0.0</XMI.field>
       </UML:Diagram.viewport>
       <UML:GraphElement.semanticModel>
         <UML:SimpleSemanticModelElement xmi.id = 'I122971bm10f72416043mm7e68'
presentation = ''
           typeInfo = 'ClassDiagram'/>
       </UML:GraphElement.semanticModel>
       <UML:GraphElement.contained>
         <UML:GraphNode xmi.id = 'I122971bm10f72416043mm7e5f' isVisible = 'true'>
           <UML:GraphElement.position>
             <XMI.field>10.0</XMI.field>
             <XMI.field>-30.0</XMI.field>
           </UML:GraphElement.position>
           <UML:GraphNode.size>
             <XMI.field>715.3975</XMI.field>
             <XMI.field>312.0</XMI.field>
           </UML:GraphNode.size>
           <UML:DiagramElement.property>
             <UML:Property xmi.id = 'I122971bm10f72416043mm7e57' key = 'fill'
value =
'#ffffff'/>
             <UML:Property xmi.id = 'I122971bm10f72416043mm7e56' key =
'font-color'
value = '#000000'/>
             <UML:Property xmi.id = 'I122971bm10f72416043mm7e55' key =
'font-family'
               value = 'SansSerif'/>
             <UML:Property xmi.id = 'I122971bm10f72416043mm7e54' key =
'font-size' value
= '11'/>
             <UML:Property xmi.id = 'I122971bm10f72416043mm7e53' key = 'stroke'
value =
'#000000'/>
             <UML:Property xmi.id = 'I122971bm10f72416043mm7e52' key =
'gentleware-
custom-width'
               value = '320.0'/>
             <UML:Property xmi.id = 'I122971bm10f72416043mm7e51' key =
'gentleware-
custom-height'
               value = '220.0'/>
           </UML:DiagramElement.property>
           <UML:GraphElement.semanticModel>
             <UML:Uml1SemanticModelBridge xmi.id = 'I122971bm10f72416043mm7e5e'
presentation = ''>
               <UML:Uml1SemanticModelBridge.element>
                 <UML:Package xmi.idref = 'I122971bm10f72416043mm7e60'/>
               </UML:Uml1SemanticModelBridge.element>
             </UML:Uml1SemanticModelBridge>
           </UML:GraphElement.semanticModel>
           <UML:GraphElement.contained>
             <UML:GraphNode xmi.id = 'I122971bm10f72416043mm7e5d' isVisible =
'true'>
               <UML:GraphElement.position>
                 <XMI.field>0.0</XMI.field>
                 <XMI.field>0.0</XMI.field>
               </UML:GraphElement.position>
               <UML:GraphNode.size>
                 <XMI.field>52.9092</XMI.field>
                 <XMI.field>19.0</XMI.field>
               </UML:GraphNode.size>
               <UML:GraphElement.semanticModel>
                 <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7e5c' presentation = ''
                   typeInfo = 'NameCompartment'/>
               </UML:GraphElement.semanticModel>
               <UML:GraphElement.contained>
                 <UML:GraphNode xmi.id = 'I122971bm10f72416043mm7e5b' isVisible =
'true'>
                   <UML:GraphElement.position>
                     <XMI.field>2.0</XMI.field>
                     <XMI.field>2.0</XMI.field>
                   </UML:GraphElement.position>
                   <UML:GraphNode.size>
                     <XMI.field>48.9092</XMI.field>
                     <XMI.field>15.0</XMI.field>
                   </UML:GraphNode.size>
                   <UML:GraphElement.semanticModel>
                     <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7e5a' presentation = ''
                       typeInfo = 'Name'/>
                   </UML:GraphElement.semanticModel>
                 </UML:GraphNode>
               </UML:GraphElement.contained>
             </UML:GraphNode>
             <UML:GraphNode xmi.id = 'I122971bm10f72416043mm7e59' isVisible =
'true'>
               <UML:GraphElement.position>
                 <XMI.field>0.0</XMI.field>
                 <XMI.field>18.0</XMI.field>
               </UML:GraphElement.position>
               <UML:GraphNode.size>
                 <XMI.field>715.3975</XMI.field>
                 <XMI.field>294.0</XMI.field>
               </UML:GraphNode.size>
               <UML:GraphElement.semanticModel>
                 <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7e58' presentation = ''
                   typeInfo = 'BodyCompartment'/>
               </UML:GraphElement.semanticModel>
               <UML:GraphElement.contained>
                 <UML:GraphNode xmi.id = 'I122971bm10f72416043mm7b32' isVisible =
'true'>
                   <UML:GraphElement.position>
                     <XMI.field>530.0</XMI.field>
                     <XMI.field>150.0</XMI.field>
                   </UML:GraphElement.position>
                   <UML:GraphNode.size>
                     <XMI.field>107.8398</XMI.field>
                     <XMI.field>86.0</XMI.field>
                   </UML:GraphNode.size>
                   <UML:DiagramElement.property>
                     <UML:Property xmi.id = 'I122971bm10f72416043mm7afd' key =
'gentleware-custom-width'
                       value = '100.0'/>
                     <UML:Property xmi.id = 'I122971bm10f72416043mm7afc' key =
'gentleware-custom-height'
                       value = '72.0'/>
                     <UML:Property xmi.id = 'I122971bm10f72416043mm7af6' key =
'fill' value
= '#ffffff'/>
                     <UML:Property xmi.id = 'I122971bm10f72416043mm7af5' key =
'font-color'
value = '#000000'/>
                     <UML:Property xmi.id = 'I122971bm10f72416043mm7af4' key =
'font-
family'
                       value = 'SansSerif'/>
                     <UML:Property xmi.id = 'I122971bm10f72416043mm7af3' key =
'font-size'
value = '11'/>
                     <UML:Property xmi.id = 'I122971bm10f72416043mm7af2' key =
'stroke'
value = '#000000'/>
                   </UML:DiagramElement.property>
                   <UML:GraphElement.semanticModel>
                     <UML:Uml1SemanticModelBridge xmi.id =
'I122971bm10f72416043mm7b31' presentation = ''>
                       <UML:Uml1SemanticModelBridge.element>
                         <UML:Class xmi.idref = 'I122971bm10f72416043mm7b33'/>
                       </UML:Uml1SemanticModelBridge.element>
                     </UML:Uml1SemanticModelBridge>
                   </UML:GraphElement.semanticModel>
                   <UML:GraphElement.contained>
                     <UML:GraphNode xmi.id = 'I122971bm10f72416043mm7b30'
isVisible =
'true'>
                       <UML:GraphElement.position>
                         <XMI.field>1.0</XMI.field>
                         <XMI.field>1.0</XMI.field>
                       </UML:GraphElement.position>
                       <UML:GraphNode.size>
                         <XMI.field>105.8398</XMI.field>
                         <XMI.field>19.0</XMI.field>
                       </UML:GraphNode.size>
                       <UML:GraphElement.semanticModel>
                         <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7b2f' presentation = ''
                           typeInfo = 'NameCompartment'/>
                       </UML:GraphElement.semanticModel>
                       <UML:GraphElement.contained>
                         <UML:GraphNode xmi.id = 'I122971bm10f72416043mm7b2e'
isVisible =
'true'>
                           <UML:GraphElement.position>
                             <XMI.field>41.6111</XMI.field>
                             <XMI.field>2.0</XMI.field>
                           </UML:GraphElement.position>
                           <UML:GraphNode.size>
                             <XMI.field>22.6177</XMI.field>
                             <XMI.field>15.0</XMI.field>
                           </UML:GraphNode.size>
                           <UML:GraphElement.semanticModel>
                             <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7b2d' presentation = ''
                               typeInfo = 'Name'/>
                           </UML:GraphElement.semanticModel>
                         </UML:GraphNode>
                       </UML:GraphElement.contained>
                     </UML:GraphNode>
                     <UML:GraphNode xmi.id = 'I122971bm10f72416043mm7b2c'
isVisible =
'true'>
                       <UML:GraphElement.position>
                         <XMI.field>1.0</XMI.field>
                         <XMI.field>20.0</XMI.field>
                       </UML:GraphElement.position>
                       <UML:GraphNode.size>
                         <XMI.field>105.8398</XMI.field>
                         <XMI.field>1.0</XMI.field>
                       </UML:GraphNode.size>
                       <UML:GraphElement.semanticModel>
                         <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7b2b' presentation = ''
                           typeInfo = 'CompartmentSeparator'/>
                       </UML:GraphElement.semanticModel>
                     </UML:GraphNode>
                     <UML:GraphNode xmi.id = 'I122971bm10f72416043mm7b2a'
isVisible =
'true'>
                       <UML:GraphElement.position>
                         <XMI.field>1.0</XMI.field>
                         <XMI.field>21.0</XMI.field>
                       </UML:GraphElement.position>
                       <UML:GraphNode.size>
                         <XMI.field>105.8398</XMI.field>
                         <XMI.field>39.0</XMI.field>
                       </UML:GraphNode.size>
                       <UML:GraphElement.semanticModel>
                         <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7b29' presentation = ''
                           typeInfo = 'AttributeCompartment'/>
                       </UML:GraphElement.semanticModel>
                       <UML:GraphElement.contained>
                         <UML:GraphNode xmi.id = 'I122971bm10f72416043mm7b28'
isVisible =
'true'>
                           <UML:GraphElement.position>
                             <XMI.field>2.0</XMI.field>
                             <XMI.field>2.0</XMI.field>
                           </UML:GraphElement.position>
                           <UML:GraphNode.size>
                             <XMI.field>101.8398</XMI.field>
                             <XMI.field>35.0</XMI.field>
                           </UML:GraphNode.size>
                           <UML:GraphElement.semanticModel>
                             <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7b27' presentation = ''
                               typeInfo = 'DelimitedSection'/>
                           </UML:GraphElement.semanticModel>
                           <UML:GraphElement.contained>
                             <UML:GraphNode xmi.id = 'I122971bm10f72416043mm7af0'
isVisible
= 'true'>
                               <UML:GraphElement.position>
                                 <XMI.field>2.0</XMI.field>
                                 <XMI.field>2.0</XMI.field>
                               </UML:GraphElement.position>
                               <UML:GraphNode.size>
                                 <XMI.field>97.8398</XMI.field>
                                 <XMI.field>15.0</XMI.field>
                               </UML:GraphNode.size>
                               <UML:DiagramElement.property>
                                 <UML:Property xmi.id =
'I122971bm10f72416043mm7aee' key =
'gentleware-custom-width'
                                   value = '0.0'/>
                                 <UML:Property xmi.id =
'I122971bm10f72416043mm7aed' key =
'gentleware-custom-height'
                                   value = '0.0'/>
                               </UML:DiagramElement.property>
                               <UML:GraphElement.semanticModel>
                                 <UML:Uml1SemanticModelBridge xmi.id =
'I122971bm10f72416043mm7aef' presentation = ''>
                                   <UML:Uml1SemanticModelBridge.element>
                                     <UML:Attribute xmi.idref =
'I122971bm10f72416043mm7af1'/>
                                   </UML:Uml1SemanticModelBridge.element>
                                 </UML:Uml1SemanticModelBridge>
                               </UML:GraphElement.semanticModel>
                               <UML:GraphElement.contained>
                                 <UML:GraphNode xmi.id =
'I122971bm10f72416043mm7aec'
isVisible = 'true'>
                                   <UML:GraphElement.position>
                                     <XMI.field>0.0</XMI.field>
                                     <XMI.field>0.0</XMI.field>
                                   </UML:GraphElement.position>
                                   <UML:GraphNode.size>
                                     <XMI.field>3.6631</XMI.field>
                                     <XMI.field>15.0</XMI.field>
                                   </UML:GraphNode.size>
                                   <UML:GraphElement.semanticModel>
                                     <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7aeb' presentation = ''
                                       typeInfo = 'Visibility'/>
                                   </UML:GraphElement.semanticModel>
                                 </UML:GraphNode>
                                 <UML:GraphNode xmi.id =
'I122971bm10f72416043mm7aea'
isVisible = 'true'>
                                   <UML:GraphElement.position>
                                     <XMI.field>3.6631</XMI.field>
                                     <XMI.field>0.0</XMI.field>
                                   </UML:GraphElement.position>
                                   <UML:GraphNode.size>
                                     <XMI.field>37.2969</XMI.field>
                                     <XMI.field>15.0</XMI.field>
                                   </UML:GraphNode.size>
                                   <UML:GraphElement.semanticModel>
                                     <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7ae9' presentation = ''
                                       typeInfo = 'Name'/>
                                   </UML:GraphElement.semanticModel>
                                 </UML:GraphNode>
                                 <UML:GraphNode xmi.id =
'I122971bm10f72416043mm7ae8'
isVisible = 'true'>
                                   <UML:GraphElement.position>
                                     <XMI.field>40.96</XMI.field>
                                     <XMI.field>0.0</XMI.field>
                                   </UML:GraphElement.position>
                                   <UML:GraphNode.size>
                                     <XMI.field>3.0562</XMI.field>
                                     <XMI.field>15.0</XMI.field>
                                   </UML:GraphNode.size>
                                   <UML:GraphElement.semanticModel>
                                     <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7ae7' presentation = ''
                                       typeInfo = 'TypeSeparator'/>
                                   </UML:GraphElement.semanticModel>
                                 </UML:GraphNode>
                                 <UML:GraphNode xmi.id =
'I122971bm10f72416043mm7ae6'
isVisible = 'true'>
                                   <UML:GraphElement.position>
                                     <XMI.field>44.0161</XMI.field>
                                     <XMI.field>0.0</XMI.field>
                                   </UML:GraphElement.position>
                                   <UML:GraphNode.size>
                                     <XMI.field>11.6177</XMI.field>
                                     <XMI.field>15.0</XMI.field>
                                   </UML:GraphNode.size>
                                   <UML:GraphElement.semanticModel>
                                     <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7ae5' presentation = ''
                                       typeInfo = 'StructuralFeatureType'/>
                                   </UML:GraphElement.semanticModel>
                                   <UML:GraphElement.contained>
                                     <UML:GraphNode xmi.id =
'I122971bm10f72416043mm7ae4'
isVisible = 'true'>
                                       <UML:GraphElement.position>
                                         <XMI.field>0.0</XMI.field>
                                         <XMI.field>0.0</XMI.field>
                                       </UML:GraphElement.position>
                                       <UML:GraphNode.size>
                                         <XMI.field>11.6177</XMI.field>
                                         <XMI.field>15.0</XMI.field>
                                       </UML:GraphNode.size>
                                       <UML:GraphElement.semanticModel>
                                         <UML:Uml1SemanticModelBridge xmi.id =
'I122971bm10f72416043mm7ae3' presentation = ''>
                                           <UML:Uml1SemanticModelBridge.element>
                                             <UML:DataType xmi.idref =
'I122971bm10f72416043mm7e38'/>
                                           </UML:Uml1SemanticModelBridge.element>
                                         </UML:Uml1SemanticModelBridge>
                                       </UML:GraphElement.semanticModel>
                                       <UML:GraphElement.contained>
                                         <UML:GraphNode xmi.id =
'I122971bm10f72416043mm7ae2'
isVisible = 'true'>
                                           <UML:GraphElement.position>
                                             <XMI.field>0.0</XMI.field>
                                             <XMI.field>0.0</XMI.field>
                                           </UML:GraphElement.position>
                                           <UML:GraphNode.size>
                                             <XMI.field>11.6177</XMI.field>
                                             <XMI.field>15.0</XMI.field>
                                           </UML:GraphNode.size>
                                           <UML:GraphElement.semanticModel>
                                             <UML:SimpleSemanticModelElement
xmi.id =
'I122971bm10f72416043mm7ae1' presentation = ''
                                               typeInfo = 'Name'/>
                                           </UML:GraphElement.semanticModel>
                                         </UML:GraphNode>
                                       </UML:GraphElement.contained>
                                     </UML:GraphNode>
                                   </UML:GraphElement.contained>
                                 </UML:GraphNode>
                               </UML:GraphElement.contained>
                             </UML:GraphNode>
                             <UML:GraphNode xmi.id = 'I122971bm10f72416043mm7a61'
isVisible
= 'true'>
                               <UML:GraphElement.position>
                                 <XMI.field>2.0</XMI.field>
                                 <XMI.field>18.0</XMI.field>
                               </UML:GraphElement.position>
                               <UML:GraphNode.size>
                                 <XMI.field>97.8398</XMI.field>
                                 <XMI.field>15.0</XMI.field>
                               </UML:GraphNode.size>
                               <UML:DiagramElement.property>
                                 <UML:Property xmi.id =
'I122971bm10f72416043mm7a5f' key =
'gentleware-custom-width'
                                   value = '0.0'/>
                                 <UML:Property xmi.id =
'I122971bm10f72416043mm7a5e' key =
'gentleware-custom-height'
                                   value = '0.0'/>
                               </UML:DiagramElement.property>
                               <UML:GraphElement.semanticModel>
                                 <UML:Uml1SemanticModelBridge xmi.id =
'I122971bm10f72416043mm7a60' presentation = ''>
                                   <UML:Uml1SemanticModelBridge.element>
                                     <UML:Attribute xmi.idref =
'I122971bm10f72416043mm7a62'/>
                                   </UML:Uml1SemanticModelBridge.element>
                                 </UML:Uml1SemanticModelBridge>
                               </UML:GraphElement.semanticModel>
                               <UML:GraphElement.contained>
                                 <UML:GraphNode xmi.id =
'I122971bm10f72416043mm7a5d'
isVisible = 'true'>
                                   <UML:GraphElement.position>
                                     <XMI.field>0.0</XMI.field>
                                     <XMI.field>0.0</XMI.field>
                                   </UML:GraphElement.position>
                                   <UML:GraphNode.size>
                                     <XMI.field>3.6631</XMI.field>
                                     <XMI.field>15.0</XMI.field>
                                   </UML:GraphNode.size>
                                   <UML:GraphElement.semanticModel>
                                     <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7a5c' presentation = ''
                                       typeInfo = 'Visibility'/>
                                   </UML:GraphElement.semanticModel>
                                 </UML:GraphNode>
                                 <UML:GraphNode xmi.id =
'I122971bm10f72416043mm7a5b'
isVisible = 'true'>
                                   <UML:GraphElement.position>
                                     <XMI.field>3.6631</XMI.field>
                                     <XMI.field>0.0</XMI.field>
                                   </UML:GraphElement.position>
                                   <UML:GraphNode.size>
                                     <XMI.field>62.3853</XMI.field>
                                     <XMI.field>15.0</XMI.field>
                                   </UML:GraphNode.size>
                                   <UML:GraphElement.semanticModel>
                                     <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7a5a' presentation = ''
                                       typeInfo = 'Name'/>
                                   </UML:GraphElement.semanticModel>
                                 </UML:GraphNode>
                                 <UML:GraphNode xmi.id =
'I122971bm10f72416043mm7a59'
isVisible = 'true'>
                                   <UML:GraphElement.position>
                                     <XMI.field>66.0483</XMI.field>
                                     <XMI.field>0.0</XMI.field>
                                   </UML:GraphElement.position>
                                   <UML:GraphNode.size>
                                     <XMI.field>3.0562</XMI.field>
                                     <XMI.field>15.0</XMI.field>
                                   </UML:GraphNode.size>
                                   <UML:GraphElement.semanticModel>
                                     <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7a58' presentation = ''
                                       typeInfo = 'TypeSeparator'/>
                                   </UML:GraphElement.semanticModel>
                                 </UML:GraphNode>
                                 <UML:GraphNode xmi.id =
'I122971bm10f72416043mm7a57'
isVisible = 'true'>
                                   <UML:GraphElement.position>
                                     <XMI.field>69.1045</XMI.field>
                                     <XMI.field>0.0</XMI.field>
                                   </UML:GraphElement.position>
                                   <UML:GraphNode.size>
                                     <XMI.field>28.7354</XMI.field>
                                     <XMI.field>15.0</XMI.field>
                                   </UML:GraphNode.size>
                                   <UML:GraphElement.semanticModel>
                                     <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7a56' presentation = ''
                                       typeInfo = 'StructuralFeatureType'/>
                                   </UML:GraphElement.semanticModel>
                                   <UML:GraphElement.contained>
                                     <UML:GraphNode xmi.id =
'I122971bm10f72416043mm7a55'
isVisible = 'true'>
                                       <UML:GraphElement.position>
                                         <XMI.field>0.0</XMI.field>
                                         <XMI.field>0.0</XMI.field>
                                       </UML:GraphElement.position>
                                       <UML:GraphNode.size>
                                         <XMI.field>28.7354</XMI.field>
                                         <XMI.field>15.0</XMI.field>
                                       </UML:GraphNode.size>
                                       <UML:GraphElement.semanticModel>
                                         <UML:Uml1SemanticModelBridge xmi.id =
'I122971bm10f72416043mm7a54' presentation = ''>
                                           <UML:Uml1SemanticModelBridge.element>
                                             <UML:DataType xmi.idref =
'I122971bm10f72416043mm7dde'/>
                                           </UML:Uml1SemanticModelBridge.element>
                                         </UML:Uml1SemanticModelBridge>
                                       </UML:GraphElement.semanticModel>
                                       <UML:GraphElement.contained>
                                         <UML:GraphNode xmi.id =
'I122971bm10f72416043mm7a53'
isVisible = 'true'>
                                           <UML:GraphElement.position>
                                             <XMI.field>0.0</XMI.field>
                                             <XMI.field>0.0</XMI.field>
                                           </UML:GraphElement.position>
                                           <UML:GraphNode.size>
                                             <XMI.field>28.7354</XMI.field>
                                             <XMI.field>15.0</XMI.field>
                                           </UML:GraphNode.size>
                                           <UML:GraphElement.semanticModel>
                                             <UML:SimpleSemanticModelElement
xmi.id =
'I122971bm10f72416043mm7a52' presentation = ''
                                               typeInfo = 'Name'/>
                                           </UML:GraphElement.semanticModel>
                                         </UML:GraphNode>
                                       </UML:GraphElement.contained>
                                     </UML:GraphNode>
                                   </UML:GraphElement.contained>
                                 </UML:GraphNode>
                               </UML:GraphElement.contained>
                             </UML:GraphNode>
                           </UML:GraphElement.contained>
                         </UML:GraphNode>
                       </UML:GraphElement.contained>
                     </UML:GraphNode>
                     <UML:GraphNode xmi.id = 'I122971bm10f72416043mm7b26'
isVisible =
'true'>
                       <UML:GraphElement.position>
                         <XMI.field>1.0</XMI.field>
                         <XMI.field>60.0</XMI.field>
                       </UML:GraphElement.position>
                       <UML:GraphNode.size>
                         <XMI.field>105.8398</XMI.field>
                         <XMI.field>1.0</XMI.field>
                       </UML:GraphNode.size>
                       <UML:GraphElement.semanticModel>
                         <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7b25' presentation = ''
                           typeInfo = 'CompartmentSeparator'/>
                       </UML:GraphElement.semanticModel>
                     </UML:GraphNode>
                     <UML:GraphNode xmi.id = 'I122971bm10f72416043mm7b24'
isVisible =
'true'>
                       <UML:GraphElement.position>
                         <XMI.field>1.0</XMI.field>
                         <XMI.field>61.0</XMI.field>
                       </UML:GraphElement.position>
                       <UML:GraphNode.size>
                         <XMI.field>105.8398</XMI.field>
                         <XMI.field>24.0</XMI.field>
                       </UML:GraphNode.size>
                       <UML:GraphElement.semanticModel>
                         <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7b23' presentation = ''
                           typeInfo = 'OperationCompartment'/>
                       </UML:GraphElement.semanticModel>
                       <UML:GraphElement.contained>
                         <UML:GraphNode xmi.id = 'I122971bm10f72416043mm7b22'
isVisible =
'true'>
                           <UML:GraphElement.position>
                             <XMI.field>2.0</XMI.field>
                             <XMI.field>2.0</XMI.field>
                           </UML:GraphElement.position>
                           <UML:GraphNode.size>
                             <XMI.field>101.8398</XMI.field>
                             <XMI.field>20.0</XMI.field>
                           </UML:GraphNode.size>
                           <UML:GraphElement.semanticModel>
                             <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7b21' presentation = ''
                               typeInfo = 'DelimitedSection'/>
                           </UML:GraphElement.semanticModel>
                         </UML:GraphNode>
                       </UML:GraphElement.contained>
                     </UML:GraphNode>
                   </UML:GraphElement.contained>
                   <UML:GraphElement.anchorage>
                     <UML:GraphConnector xmi.id = 'I122971bm10f72416043mm7b18'>
                       <UML:GraphConnector.position>
                         <XMI.field>0.0</XMI.field>
                         <XMI.field>36.0</XMI.field>
                       </UML:GraphConnector.position>
                       <UML:GraphConnector.graphEdge>
                         <UML:GraphEdge xmi.idref =
'I122971bm10f72416043mm7b17'/>
                       </UML:GraphConnector.graphEdge>
                     </UML:GraphConnector>
                   </UML:GraphElement.anchorage>
                 </UML:GraphNode>
                 <UML:GraphNode xmi.id = 'I122971bm10f72416043mm7bc2' isVisible =
'true'>
                   <UML:GraphElement.position>
                     <XMI.field>250.0</XMI.field>
                     <XMI.field>150.0</XMI.field>
                   </UML:GraphElement.position>
                   <UML:GraphNode.size>
                     <XMI.field>100.0</XMI.field>
                     <XMI.field>72.0</XMI.field>
                   </UML:GraphNode.size>
                   <UML:DiagramElement.property>
                     <UML:Property xmi.id = 'I122971bm10f72416043mm7bb0' key =
'fill' value
= '#ffffff'/>
                     <UML:Property xmi.id = 'I122971bm10f72416043mm7baf' key =
'font-color'
value = '#000000'/>
                     <UML:Property xmi.id = 'I122971bm10f72416043mm7bae' key =
'font-
family'
                       value = 'SansSerif'/>
                     <UML:Property xmi.id = 'I122971bm10f72416043mm7bad' key =
'font-size'
value = '11'/>
                     <UML:Property xmi.id = 'I122971bm10f72416043mm7bac' key =
'stroke'
value = '#000000'/>
                   </UML:DiagramElement.property>
                   <UML:GraphElement.semanticModel>
                     <UML:Uml1SemanticModelBridge xmi.id =
'I122971bm10f72416043mm7bc1' presentation = ''>
                       <UML:Uml1SemanticModelBridge.element>
                         <UML:Class xmi.idref = 'I122971bm10f72416043mm7bc3'/>
                       </UML:Uml1SemanticModelBridge.element>
                     </UML:Uml1SemanticModelBridge>
                   </UML:GraphElement.semanticModel>
                   <UML:GraphElement.contained>
                     <UML:GraphNode xmi.id = 'I122971bm10f72416043mm7bc0'
isVisible =
'true'>
                       <UML:GraphElement.position>
                         <XMI.field>1.0</XMI.field>
                         <XMI.field>1.0</XMI.field>
                       </UML:GraphElement.position>
                       <UML:GraphNode.size>
                         <XMI.field>98.0</XMI.field>
                         <XMI.field>19.0</XMI.field>
                       </UML:GraphNode.size>
                       <UML:GraphElement.semanticModel>
                         <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7bbf' presentation = ''
                           typeInfo = 'NameCompartment'/>
                       </UML:GraphElement.semanticModel>
                       <UML:GraphElement.contained>
                         <UML:GraphNode xmi.id = 'I122971bm10f72416043mm7bbe'
isVisible =
'true'>
                           <UML:GraphElement.position>
                             <XMI.field>19.0454</XMI.field>
                             <XMI.field>2.0</XMI.field>
                           </UML:GraphElement.position>
                           <UML:GraphNode.size>
                             <XMI.field>59.9092</XMI.field>
                             <XMI.field>15.0</XMI.field>
                           </UML:GraphNode.size>
                           <UML:GraphElement.semanticModel>
                             <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7bbd' presentation = ''
                               typeInfo = 'Name'/>
                           </UML:GraphElement.semanticModel>
                         </UML:GraphNode>
                       </UML:GraphElement.contained>
                     </UML:GraphNode>
                     <UML:GraphNode xmi.id = 'I122971bm10f72416043mm7bbc'
isVisible =
'true'>
                       <UML:GraphElement.position>
                         <XMI.field>1.0</XMI.field>
                         <XMI.field>20.0</XMI.field>
                       </UML:GraphElement.position>
                       <UML:GraphNode.size>
                         <XMI.field>98.0</XMI.field>
                         <XMI.field>1.0</XMI.field>
                       </UML:GraphNode.size>
                       <UML:GraphElement.semanticModel>
                         <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7bbb' presentation = ''
                           typeInfo = 'CompartmentSeparator'/>
                       </UML:GraphElement.semanticModel>
                     </UML:GraphNode>
                     <UML:GraphNode xmi.id = 'I122971bm10f72416043mm7bba'
isVisible =
'true'>
                       <UML:GraphElement.position>
                         <XMI.field>1.0</XMI.field>
                         <XMI.field>21.0</XMI.field>
                       </UML:GraphElement.position>
                       <UML:GraphNode.size>
                         <XMI.field>98.0</XMI.field>
                         <XMI.field>24.0</XMI.field>
                       </UML:GraphNode.size>
                       <UML:GraphElement.semanticModel>
                         <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7bb9' presentation = ''
                           typeInfo = 'AttributeCompartment'/>
                       </UML:GraphElement.semanticModel>
                       <UML:GraphElement.contained>
                         <UML:GraphNode xmi.id = 'I122971bm10f72416043mm7bb8'
isVisible =
'true'>
                           <UML:GraphElement.position>
                             <XMI.field>2.0</XMI.field>
                             <XMI.field>2.0</XMI.field>
                           </UML:GraphElement.position>
                           <UML:GraphNode.size>
                             <XMI.field>94.0</XMI.field>
                             <XMI.field>20.0</XMI.field>
                           </UML:GraphNode.size>
                           <UML:GraphElement.semanticModel>
                             <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7bb7' presentation = ''
                               typeInfo = 'DelimitedSection'/>
                           </UML:GraphElement.semanticModel>
                           <UML:GraphElement.contained>
                             <UML:GraphNode xmi.id = 'I122971bm10f72416043mm7baa'
isVisible
= 'true'>
                               <UML:GraphElement.position>
                                 <XMI.field>2.0</XMI.field>
                                 <XMI.field>2.0</XMI.field>
                               </UML:GraphElement.position>
                               <UML:GraphNode.size>
                                 <XMI.field>90.0</XMI.field>
                                 <XMI.field>15.0</XMI.field>
                               </UML:GraphNode.size>
                               <UML:DiagramElement.property>
                                 <UML:Property xmi.id =
'I122971bm10f72416043mm7ba8' key =
'gentleware-custom-width'
                                   value = '0.0'/>
                                 <UML:Property xmi.id =
'I122971bm10f72416043mm7ba7' key =
'gentleware-custom-height'
                                   value = '0.0'/>
                               </UML:DiagramElement.property>
                               <UML:GraphElement.semanticModel>
                                 <UML:Uml1SemanticModelBridge xmi.id =
'I122971bm10f72416043mm7ba9' presentation = ''>
                                   <UML:Uml1SemanticModelBridge.element>
                                     <UML:Attribute xmi.idref =
'I122971bm10f72416043mm7bab'/>
                                   </UML:Uml1SemanticModelBridge.element>
                                 </UML:Uml1SemanticModelBridge>
                               </UML:GraphElement.semanticModel>
                               <UML:GraphElement.contained>
                                 <UML:GraphNode xmi.id =
'I122971bm10f72416043mm7ba6'
isVisible = 'true'>
                                   <UML:GraphElement.position>
                                     <XMI.field>0.0</XMI.field>
                                     <XMI.field>0.0</XMI.field>
                                   </UML:GraphElement.position>
                                   <UML:GraphNode.size>
                                     <XMI.field>3.6631</XMI.field>
                                     <XMI.field>15.0</XMI.field>
                                   </UML:GraphNode.size>
                                   <UML:GraphElement.semanticModel>
                                     <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7ba5' presentation = ''
                                       typeInfo = 'Visibility'/>
                                   </UML:GraphElement.semanticModel>
                                 </UML:GraphNode>
                                 <UML:GraphNode xmi.id =
'I122971bm10f72416043mm7ba4'
isVisible = 'true'>
                                   <UML:GraphElement.position>
                                     <XMI.field>3.6631</XMI.field>
                                     <XMI.field>0.0</XMI.field>
                                   </UML:GraphElement.position>
                                   <UML:GraphNode.size>
                                     <XMI.field>48.3184</XMI.field>
                                     <XMI.field>15.0</XMI.field>
                                   </UML:GraphNode.size>
                                   <UML:GraphElement.semanticModel>
                                     <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7ba3' presentation = ''
                                       typeInfo = 'Name'/>
                                   </UML:GraphElement.semanticModel>
                                 </UML:GraphNode>
                                 <UML:GraphNode xmi.id =
'I122971bm10f72416043mm7ba2'
isVisible = 'true'>
                                   <UML:GraphElement.position>
                                     <XMI.field>51.9814</XMI.field>
                                     <XMI.field>0.0</XMI.field>
                                   </UML:GraphElement.position>
                                   <UML:GraphNode.size>
                                     <XMI.field>3.0562</XMI.field>
                                     <XMI.field>15.0</XMI.field>
                                   </UML:GraphNode.size>
                                   <UML:GraphElement.semanticModel>
                                     <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7ba1' presentation = ''
                                       typeInfo = 'TypeSeparator'/>
                                   </UML:GraphElement.semanticModel>
                                 </UML:GraphNode>
                                 <UML:GraphNode xmi.id =
'I122971bm10f72416043mm7ba0'
isVisible = 'true'>
                                   <UML:GraphElement.position>
                                     <XMI.field>55.0376</XMI.field>
                                     <XMI.field>0.0</XMI.field>
                                   </UML:GraphElement.position>
                                   <UML:GraphNode.size>
                                     <XMI.field>11.6177</XMI.field>
                                     <XMI.field>15.0</XMI.field>
                                   </UML:GraphNode.size>
                                   <UML:GraphElement.semanticModel>
                                     <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7b9f' presentation = ''
                                       typeInfo = 'StructuralFeatureType'/>
                                   </UML:GraphElement.semanticModel>
                                   <UML:GraphElement.contained>
                                     <UML:GraphNode xmi.id =
'I122971bm10f72416043mm7b9e'
isVisible = 'true'>
                                       <UML:GraphElement.position>
                                         <XMI.field>0.0</XMI.field>
                                         <XMI.field>0.0</XMI.field>
                                       </UML:GraphElement.position>
                                       <UML:GraphNode.size>
                                         <XMI.field>11.6177</XMI.field>
                                         <XMI.field>15.0</XMI.field>
                                       </UML:GraphNode.size>
                                       <UML:GraphElement.semanticModel>
                                         <UML:Uml1SemanticModelBridge xmi.id =
'I122971bm10f72416043mm7b9d' presentation = ''>
                                           <UML:Uml1SemanticModelBridge.element>
                                             <UML:DataType xmi.idref =
'I122971bm10f72416043mm7e38'/>
                                           </UML:Uml1SemanticModelBridge.element>
                                         </UML:Uml1SemanticModelBridge>
                                       </UML:GraphElement.semanticModel>
                                       <UML:GraphElement.contained>
                                         <UML:GraphNode xmi.id =
'I122971bm10f72416043mm7b9c'
isVisible = 'true'>
                                           <UML:GraphElement.position>
                                             <XMI.field>0.0</XMI.field>
                                             <XMI.field>0.0</XMI.field>
                                           </UML:GraphElement.position>
                                           <UML:GraphNode.size>
                                             <XMI.field>11.6177</XMI.field>
                                             <XMI.field>15.0</XMI.field>
                                           </UML:GraphNode.size>
                                           <UML:GraphElement.semanticModel>
                                             <UML:SimpleSemanticModelElement
xmi.id =
'I122971bm10f72416043mm7b9b' presentation = ''
                                               typeInfo = 'Name'/>
                                           </UML:GraphElement.semanticModel>
                                         </UML:GraphNode>
                                       </UML:GraphElement.contained>
                                     </UML:GraphNode>
                                   </UML:GraphElement.contained>
                                 </UML:GraphNode>
                               </UML:GraphElement.contained>
                             </UML:GraphNode>
                           </UML:GraphElement.contained>
                         </UML:GraphNode>
                       </UML:GraphElement.contained>
                     </UML:GraphNode>
                     <UML:GraphNode xmi.id = 'I122971bm10f72416043mm7bb6'
isVisible =
'true'>
                       <UML:GraphElement.position>
                         <XMI.field>1.0</XMI.field>
                         <XMI.field>45.0</XMI.field>
                       </UML:GraphElement.position>
                       <UML:GraphNode.size>
                         <XMI.field>98.0</XMI.field>
                         <XMI.field>1.0</XMI.field>
                       </UML:GraphNode.size>
                       <UML:GraphElement.semanticModel>
                         <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7bb5' presentation = ''
                           typeInfo = 'CompartmentSeparator'/>
                       </UML:GraphElement.semanticModel>
                     </UML:GraphNode>
                     <UML:GraphNode xmi.id = 'I122971bm10f72416043mm7bb4'
isVisible =
'true'>
                       <UML:GraphElement.position>
                         <XMI.field>1.0</XMI.field>
                         <XMI.field>46.0</XMI.field>
                       </UML:GraphElement.position>
                       <UML:GraphNode.size>
                         <XMI.field>98.0</XMI.field>
                         <XMI.field>25.0</XMI.field>
                       </UML:GraphNode.size>
                       <UML:GraphElement.semanticModel>
                         <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7bb3' presentation = ''
                           typeInfo = 'OperationCompartment'/>
                       </UML:GraphElement.semanticModel>
                       <UML:GraphElement.contained>
                         <UML:GraphNode xmi.id = 'I122971bm10f72416043mm7bb2'
isVisible =
'true'>
                           <UML:GraphElement.position>
                             <XMI.field>2.0</XMI.field>
                             <XMI.field>2.0</XMI.field>
                           </UML:GraphElement.position>
                           <UML:GraphNode.size>
                             <XMI.field>94.0</XMI.field>
                             <XMI.field>20.0</XMI.field>
                           </UML:GraphNode.size>
                           <UML:GraphElement.semanticModel>
                             <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7bb1' presentation = ''
                               typeInfo = 'DelimitedSection'/>
                           </UML:GraphElement.semanticModel>
                         </UML:GraphNode>
                       </UML:GraphElement.contained>
                     </UML:GraphNode>
                   </UML:GraphElement.contained>
                   <UML:GraphElement.anchorage>
                     <UML:GraphConnector xmi.id = 'I122971bm10f72416043mm7b53'>
                       <UML:GraphConnector.position>
                         <XMI.field>28.5</XMI.field>
                         <XMI.field>0.0</XMI.field>
                       </UML:GraphConnector.position>
                       <UML:GraphConnector.graphEdge>
                         <UML:GraphEdge xmi.idref =
'I122971bm10f72416043mm7b52'/>
                       </UML:GraphConnector.graphEdge>
                     </UML:GraphConnector>
                     <UML:GraphConnector xmi.id = 'I122971bm10f72416043mm7b19'>
                       <UML:GraphConnector.position>
                         <XMI.field>100.0</XMI.field>
                         <XMI.field>36.0</XMI.field>
                       </UML:GraphConnector.position>
                       <UML:GraphConnector.graphEdge>
                         <UML:GraphEdge xmi.idref =
'I122971bm10f72416043mm7b17'/>
                       </UML:GraphConnector.graphEdge>
                     </UML:GraphConnector>
                   </UML:GraphElement.anchorage>
                 </UML:GraphNode>
                 <UML:GraphNode xmi.id = 'I122971bm10f72416043mm7d0e' isVisible =
'true'>
                   <UML:GraphElement.position>
                     <XMI.field>210.0</XMI.field>
                     <XMI.field>10.0</XMI.field>
                   </UML:GraphElement.position>
                   <UML:GraphNode.size>
                     <XMI.field>100.0</XMI.field>
                     <XMI.field>86.0</XMI.field>
                   </UML:GraphNode.size>
                   <UML:DiagramElement.property>
                     <UML:Property xmi.id = 'I122971bm10f72416043mm7cd9' key =
'gentleware-custom-width'
                       value = '100.0'/>
                     <UML:Property xmi.id = 'I122971bm10f72416043mm7cd8' key =
'gentleware-custom-height'
                       value = '72.0'/>
                     <UML:Property xmi.id = 'I122971bm10f72416043mm7cd2' key =
'fill' value
= '#ffffff'/>
                     <UML:Property xmi.id = 'I122971bm10f72416043mm7cd1' key =
'font-
color' value = '#000000'/>
                     <UML:Property xmi.id = 'I122971bm10f72416043mm7cd0' key =
'font-
family'
                       value = 'SansSerif'/>
                     <UML:Property xmi.id = 'I122971bm10f72416043mm7ccf' key =
'font-size'
value = '11'/>
                     <UML:Property xmi.id = 'I122971bm10f72416043mm7cce' key =
'stroke'
value = '#000000'/>
                   </UML:DiagramElement.property>
                   <UML:GraphElement.semanticModel>
                     <UML:Uml1SemanticModelBridge xmi.id =
'I122971bm10f72416043mm7d0d' presentation = ''>
                       <UML:Uml1SemanticModelBridge.element>
                         <UML:Class xmi.idref = 'I122971bm10f72416043mm7d0f'/>
                       </UML:Uml1SemanticModelBridge.element>
                     </UML:Uml1SemanticModelBridge>
                   </UML:GraphElement.semanticModel>
                   <UML:GraphElement.contained>
                     <UML:GraphNode xmi.id = 'I122971bm10f72416043mm7d0c'
isVisible =
'true'>
                       <UML:GraphElement.position>
                         <XMI.field>1.0</XMI.field>
                         <XMI.field>1.0</XMI.field>
                       </UML:GraphElement.position>
                       <UML:GraphNode.size>
                         <XMI.field>98.0</XMI.field>
                         <XMI.field>19.0</XMI.field>
                       </UML:GraphNode.size>
                       <UML:GraphElement.semanticModel>
                         <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7d0b' presentation = ''
                           typeInfo = 'NameCompartment'/>
                       </UML:GraphElement.semanticModel>
                       <UML:GraphElement.contained>
                         <UML:GraphNode xmi.id = 'I122971bm10f72416043mm7d0a'
isVisible =
'true'>
                           <UML:GraphElement.position>
                             <XMI.field>34.0227</XMI.field>
                             <XMI.field>2.0</XMI.field>
                           </UML:GraphElement.position>
                           <UML:GraphNode.size>
                             <XMI.field>29.9546</XMI.field>
                             <XMI.field>15.0</XMI.field>
                           </UML:GraphNode.size>
                           <UML:GraphElement.semanticModel>
                             <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7d09' presentation = ''
                               typeInfo = 'Name'/>
                           </UML:GraphElement.semanticModel>
                         </UML:GraphNode>
                       </UML:GraphElement.contained>
                     </UML:GraphNode>
                     <UML:GraphNode xmi.id = 'I122971bm10f72416043mm7d08'
isVisible =
'true'>
                       <UML:GraphElement.position>
                         <XMI.field>1.0</XMI.field>
                         <XMI.field>20.0</XMI.field>
                       </UML:GraphElement.position>
                       <UML:GraphNode.size>
                         <XMI.field>98.0</XMI.field>
                         <XMI.field>1.0</XMI.field>
                       </UML:GraphNode.size>
                       <UML:GraphElement.semanticModel>
                         <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7d07' presentation = ''
                           typeInfo = 'CompartmentSeparator'/>
                       </UML:GraphElement.semanticModel>
                     </UML:GraphNode>
                     <UML:GraphNode xmi.id = 'I122971bm10f72416043mm7d06'
isVisible =
'true'>
                       <UML:GraphElement.position>
                         <XMI.field>1.0</XMI.field>
                         <XMI.field>21.0</XMI.field>
                       </UML:GraphElement.position>
                       <UML:GraphNode.size>
                         <XMI.field>98.0</XMI.field>
                         <XMI.field>39.0</XMI.field>
                       </UML:GraphNode.size>
                       <UML:GraphElement.semanticModel>
                         <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7d05' presentation = ''
                           typeInfo = 'AttributeCompartment'/>
                       </UML:GraphElement.semanticModel>
                       <UML:GraphElement.contained>
                         <UML:GraphNode xmi.id = 'I122971bm10f72416043mm7d04'
isVisible =
'true'>
                           <UML:GraphElement.position>
                             <XMI.field>2.0</XMI.field>
                             <XMI.field>2.0</XMI.field>
                           </UML:GraphElement.position>
                           <UML:GraphNode.size>
                             <XMI.field>94.0</XMI.field>
                             <XMI.field>35.0</XMI.field>
                           </UML:GraphNode.size>
                           <UML:GraphElement.semanticModel>
                             <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7d03' presentation = ''
                               typeInfo = 'DelimitedSection'/>
                           </UML:GraphElement.semanticModel>
                           <UML:GraphElement.contained>
                             <UML:GraphNode xmi.id = 'I122971bm10f72416043mm7ccc'
isVisible
= 'true'>
                               <UML:GraphElement.position>
                                 <XMI.field>2.0</XMI.field>
                                 <XMI.field>2.0</XMI.field>
                               </UML:GraphElement.position>
                               <UML:GraphNode.size>
                                 <XMI.field>90.0</XMI.field>
                                 <XMI.field>15.0</XMI.field>
                               </UML:GraphNode.size>
                               <UML:DiagramElement.property>
                                 <UML:Property xmi.id =
'I122971bm10f72416043mm7cca' key =
'gentleware-custom-width'
                                   value = '0.0'/>
                                 <UML:Property xmi.id =
'I122971bm10f72416043mm7cc9' key =
'gentleware-custom-height'
                                   value = '0.0'/>
                               </UML:DiagramElement.property>
                               <UML:GraphElement.semanticModel>
                                 <UML:Uml1SemanticModelBridge xmi.id =
'I122971bm10f72416043mm7ccb' presentation = ''>
                                   <UML:Uml1SemanticModelBridge.element>
                                     <UML:Attribute xmi.idref =
'I122971bm10f72416043mm7ccd'/>
                                   </UML:Uml1SemanticModelBridge.element>
                                 </UML:Uml1SemanticModelBridge>
                               </UML:GraphElement.semanticModel>
                               <UML:GraphElement.contained>
                                 <UML:GraphNode xmi.id =
'I122971bm10f72416043mm7cc8'
isVisible = 'true'>
                                   <UML:GraphElement.position>
                                     <XMI.field>0.0</XMI.field>
                                     <XMI.field>0.0</XMI.field>
                                   </UML:GraphElement.position>
                                   <UML:GraphNode.size>
                                     <XMI.field>3.6631</XMI.field>
                                     <XMI.field>15.0</XMI.field>
                                   </UML:GraphNode.size>
                                   <UML:GraphElement.semanticModel>
                                     <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7cc7' presentation = ''
                                       typeInfo = 'Visibility'/>
                                   </UML:GraphElement.semanticModel>
                                 </UML:GraphNode>
                                 <UML:GraphNode xmi.id =
'I122971bm10f72416043mm7cc6'
isVisible = 'true'>
                                   <UML:GraphElement.position>
                                     <XMI.field>3.6631</XMI.field>
                                     <XMI.field>0.0</XMI.field>
                                   </UML:GraphElement.position>
                                   <UML:GraphNode.size>
                                     <XMI.field>30.5723</XMI.field>
                                     <XMI.field>15.0</XMI.field>
                                   </UML:GraphNode.size>
                                   <UML:GraphElement.semanticModel>
                                     <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7cc5' presentation = ''
                                       typeInfo = 'Name'/>
                                   </UML:GraphElement.semanticModel>
                                 </UML:GraphNode>
                                 <UML:GraphNode xmi.id =
'I122971bm10f72416043mm7cc4'
isVisible = 'true'>
                                   <UML:GraphElement.position>
                                     <XMI.field>34.2354</XMI.field>
                                     <XMI.field>0.0</XMI.field>
                                   </UML:GraphElement.position>
                                   <UML:GraphNode.size>
                                     <XMI.field>3.0562</XMI.field>
                                     <XMI.field>15.0</XMI.field>
                                   </UML:GraphNode.size>
                                   <UML:GraphElement.semanticModel>
                                     <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7cc3' presentation = ''
                                       typeInfo = 'TypeSeparator'/>
                                   </UML:GraphElement.semanticModel>
                                 </UML:GraphNode>
                                 <UML:GraphNode xmi.id =
'I122971bm10f72416043mm7cc2'
isVisible = 'true'>
                                   <UML:GraphElement.position>
                                     <XMI.field>37.2915</XMI.field>
                                     <XMI.field>0.0</XMI.field>
                                   </UML:GraphElement.position>
                                   <UML:GraphNode.size>
                                     <XMI.field>23.2354</XMI.field>
                                     <XMI.field>15.0</XMI.field>
                                   </UML:GraphNode.size>
                                   <UML:GraphElement.semanticModel>
                                     <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7cc1' presentation = ''
                                       typeInfo = 'StructuralFeatureType'/>
                                   </UML:GraphElement.semanticModel>
                                   <UML:GraphElement.contained>
                                     <UML:GraphNode xmi.id =
'I122971bm10f72416043mm7cc0'
isVisible = 'true'>
                                       <UML:GraphElement.position>
                                         <XMI.field>0.0</XMI.field>
                                         <XMI.field>0.0</XMI.field>
                                       </UML:GraphElement.position>
                                       <UML:GraphNode.size>
                                         <XMI.field>23.2354</XMI.field>
                                         <XMI.field>15.0</XMI.field>
                                       </UML:GraphNode.size>
                                       <UML:GraphElement.semanticModel>
                                         <UML:Uml1SemanticModelBridge xmi.id =
'I122971bm10f72416043mm7cbf' presentation = ''>
                                           <UML:Uml1SemanticModelBridge.element>
                                             <UML:DataType xmi.idref =
'I122971bm10f72416043mm7c7d'/>
                                           </UML:Uml1SemanticModelBridge.element>
                                         </UML:Uml1SemanticModelBridge>
                                       </UML:GraphElement.semanticModel>
                                       <UML:GraphElement.contained>
                                         <UML:GraphNode xmi.id =
'I122971bm10f72416043mm7cbe'
isVisible = 'true'>
                                           <UML:GraphElement.position>
                                             <XMI.field>0.0</XMI.field>
                                             <XMI.field>0.0</XMI.field>
                                           </UML:GraphElement.position>
                                           <UML:GraphNode.size>
                                             <XMI.field>23.2354</XMI.field>
                                             <XMI.field>15.0</XMI.field>
                                           </UML:GraphNode.size>
                                           <UML:GraphElement.semanticModel>
                                             <UML:SimpleSemanticModelElement
xmi.id =
'I122971bm10f72416043mm7cbd' presentation = ''
                                               typeInfo = 'Name'/>
                                           </UML:GraphElement.semanticModel>
                                         </UML:GraphNode>
                                       </UML:GraphElement.contained>
                                     </UML:GraphNode>
                                   </UML:GraphElement.contained>
                                 </UML:GraphNode>
                               </UML:GraphElement.contained>
                             </UML:GraphNode>
                             <UML:GraphNode xmi.id = 'I122971bm10f72416043mm7c3c'
isVisible
= 'true'>
                               <UML:GraphElement.position>
                                 <XMI.field>2.0</XMI.field>
                                 <XMI.field>18.0</XMI.field>
                               </UML:GraphElement.position>
                               <UML:GraphNode.size>
                                 <XMI.field>90.0</XMI.field>
                                 <XMI.field>15.0</XMI.field>
                               </UML:GraphNode.size>
                               <UML:DiagramElement.property>
                                 <UML:Property xmi.id =
'I122971bm10f72416043mm7c3a' key =
'gentleware-custom-width'
                                   value = '0.0'/>
                                 <UML:Property xmi.id =
'I122971bm10f72416043mm7c39' key =
'gentleware-custom-height'
                                   value = '0.0'/>
                               </UML:DiagramElement.property>
                               <UML:GraphElement.semanticModel>
                                 <UML:Uml1SemanticModelBridge xmi.id =
'I122971bm10f72416043mm7c3b' presentation = ''>
                                   <UML:Uml1SemanticModelBridge.element>
                                     <UML:Attribute xmi.idref =
'I122971bm10f72416043mm7c3d'/>
                                   </UML:Uml1SemanticModelBridge.element>
                                 </UML:Uml1SemanticModelBridge>
                               </UML:GraphElement.semanticModel>
                               <UML:GraphElement.contained>
                                 <UML:GraphNode xmi.id =
'I122971bm10f72416043mm7c38'
isVisible = 'true'>
                                   <UML:GraphElement.position>
                                     <XMI.field>0.0</XMI.field>
                                     <XMI.field>0.0</XMI.field>
                                   </UML:GraphElement.position>
                                   <UML:GraphNode.size>
                                     <XMI.field>3.6631</XMI.field>
                                     <XMI.field>15.0</XMI.field>
                                   </UML:GraphNode.size>
                                   <UML:GraphElement.semanticModel>
                                     <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7c37' presentation = ''
                                       typeInfo = 'Visibility'/>
                                   </UML:GraphElement.semanticModel>
                                 </UML:GraphNode>
                                 <UML:GraphNode xmi.id =
'I122971bm10f72416043mm7c36'
isVisible = 'true'>
                                   <UML:GraphElement.position>
                                     <XMI.field>3.6631</XMI.field>
                                     <XMI.field>0.0</XMI.field>
                                   </UML:GraphElement.position>
                                   <UML:GraphNode.size>
                                     <XMI.field>29.3477</XMI.field>
                                     <XMI.field>15.0</XMI.field>
                                   </UML:GraphNode.size>
                                   <UML:GraphElement.semanticModel>
                                     <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7c35' presentation = ''
                                       typeInfo = 'Name'/>
                                   </UML:GraphElement.semanticModel>
                                 </UML:GraphNode>
                                 <UML:GraphNode xmi.id =
'I122971bm10f72416043mm7c34'
isVisible = 'true'>
                                   <UML:GraphElement.position>
                                     <XMI.field>33.0107</XMI.field>
                                     <XMI.field>0.0</XMI.field>
                                   </UML:GraphElement.position>
                                   <UML:GraphNode.size>
                                     <XMI.field>3.0562</XMI.field>
                                     <XMI.field>15.0</XMI.field>
                                   </UML:GraphNode.size>
                                   <UML:GraphElement.semanticModel>
                                     <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7c33' presentation = ''
                                       typeInfo = 'TypeSeparator'/>
                                   </UML:GraphElement.semanticModel>
                                 </UML:GraphNode>
                                 <UML:GraphNode xmi.id =
'I122971bm10f72416043mm7c32'
isVisible = 'true'>
                                   <UML:GraphElement.position>
                                     <XMI.field>36.0669</XMI.field>
                                     <XMI.field>0.0</XMI.field>
                                   </UML:GraphElement.position>
                                   <UML:GraphNode.size>
                                     <XMI.field>11.6177</XMI.field>
                                     <XMI.field>15.0</XMI.field>
                                   </UML:GraphNode.size>
                                   <UML:GraphElement.semanticModel>
                                     <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7c31' presentation = ''
                                       typeInfo = 'StructuralFeatureType'/>
                                   </UML:GraphElement.semanticModel>
                                   <UML:GraphElement.contained>
                                     <UML:GraphNode xmi.id =
'I122971bm10f72416043mm7c30'
isVisible = 'true'>
                                       <UML:GraphElement.position>
                                         <XMI.field>0.0</XMI.field>
                                         <XMI.field>0.0</XMI.field>
                                       </UML:GraphElement.position>
                                       <UML:GraphNode.size>
                                         <XMI.field>11.6177</XMI.field>
                                         <XMI.field>15.0</XMI.field>
                                       </UML:GraphNode.size>
                                       <UML:GraphElement.semanticModel>
                                         <UML:Uml1SemanticModelBridge xmi.id =
'I122971bm10f72416043mm7c2f' presentation = ''>
                                           <UML:Uml1SemanticModelBridge.element>
                                             <UML:DataType xmi.idref =
'I122971bm10f72416043mm7e38'/>
                                           </UML:Uml1SemanticModelBridge.element>
                                         </UML:Uml1SemanticModelBridge>
                                       </UML:GraphElement.semanticModel>
                                       <UML:GraphElement.contained>
                                         <UML:GraphNode xmi.id =
'I122971bm10f72416043mm7c2e'
isVisible = 'true'>
                                           <UML:GraphElement.position>
                                             <XMI.field>0.0</XMI.field>
                                             <XMI.field>0.0</XMI.field>
                                           </UML:GraphElement.position>
                                           <UML:GraphNode.size>
                                             <XMI.field>11.6177</XMI.field>
                                             <XMI.field>15.0</XMI.field>
                                           </UML:GraphNode.size>
                                           <UML:GraphElement.semanticModel>
                                             <UML:SimpleSemanticModelElement
xmi.id =
'I122971bm10f72416043mm7c2d' presentation = ''
                                               typeInfo = 'Name'/>
                                           </UML:GraphElement.semanticModel>
                                         </UML:GraphNode>
                                       </UML:GraphElement.contained>
                                     </UML:GraphNode>
                                   </UML:GraphElement.contained>
                                 </UML:GraphNode>
                               </UML:GraphElement.contained>
                             </UML:GraphNode>
                           </UML:GraphElement.contained>
                         </UML:GraphNode>
                       </UML:GraphElement.contained>
                     </UML:GraphNode>
                     <UML:GraphNode xmi.id = 'I122971bm10f72416043mm7d02'
isVisible =
'true'>
                       <UML:GraphElement.position>
                         <XMI.field>1.0</XMI.field>
                         <XMI.field>60.0</XMI.field>
                       </UML:GraphElement.position>
                       <UML:GraphNode.size>
                         <XMI.field>98.0</XMI.field>
                         <XMI.field>1.0</XMI.field>
                       </UML:GraphNode.size>
                       <UML:GraphElement.semanticModel>
                         <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7d01' presentation = ''
                           typeInfo = 'CompartmentSeparator'/>
                       </UML:GraphElement.semanticModel>
                     </UML:GraphNode>
                     <UML:GraphNode xmi.id = 'I122971bm10f72416043mm7d00'
isVisible =
'true'>
                       <UML:GraphElement.position>
                         <XMI.field>1.0</XMI.field>
                         <XMI.field>61.0</XMI.field>
                       </UML:GraphElement.position>
                       <UML:GraphNode.size>
                         <XMI.field>98.0</XMI.field>
                         <XMI.field>24.0</XMI.field>
                       </UML:GraphNode.size>
                       <UML:GraphElement.semanticModel>
                         <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7cff' presentation = ''
                           typeInfo = 'OperationCompartment'/>
                       </UML:GraphElement.semanticModel>
                       <UML:GraphElement.contained>
                         <UML:GraphNode xmi.id = 'I122971bm10f72416043mm7cfe'
isVisible =
'true'>
                           <UML:GraphElement.position>
                             <XMI.field>2.0</XMI.field>
                             <XMI.field>2.0</XMI.field>
                           </UML:GraphElement.position>
                           <UML:GraphNode.size>
                             <XMI.field>94.0</XMI.field>
                             <XMI.field>20.0</XMI.field>
                           </UML:GraphNode.size>
                           <UML:GraphElement.semanticModel>
                             <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7cfd' presentation = ''
                               typeInfo = 'DelimitedSection'/>
                           </UML:GraphElement.semanticModel>
                         </UML:GraphNode>
                       </UML:GraphElement.contained>
                     </UML:GraphNode>
                   </UML:GraphElement.contained>
                   <UML:GraphElement.anchorage>
                     <UML:GraphConnector xmi.id = 'I122971bm10f72416043mm7be5'>
                       <UML:GraphConnector.position>
                         <XMI.field>0.0</XMI.field>
                         <XMI.field>43.0</XMI.field>
                       </UML:GraphConnector.position>
                       <UML:GraphConnector.graphEdge>
                         <UML:GraphEdge xmi.idref =
'I122971bm10f72416043mm7be4'/>
                       </UML:GraphConnector.graphEdge>
                     </UML:GraphConnector>
                     <UML:GraphConnector xmi.id = 'I122971bm10f72416043mm7b54'>
                       <UML:GraphConnector.position>
                         <XMI.field>68.5</XMI.field>
                         <XMI.field>86.0</XMI.field>
                       </UML:GraphConnector.position>
                       <UML:GraphConnector.graphEdge>
                         <UML:GraphEdge xmi.idref =
'I122971bm10f72416043mm7b52'/>
                       </UML:GraphConnector.graphEdge>
                     </UML:GraphConnector>
                   </UML:GraphElement.anchorage>
                 </UML:GraphNode>
                 <UML:GraphNode xmi.id = 'I122971bm10f72416043mm7e4f' isVisible =
'true'>
                   <UML:GraphElement.position>
                     <XMI.field>10.0</XMI.field>
                     <XMI.field>10.0</XMI.field>
                   </UML:GraphElement.position>
                   <UML:GraphNode.size>
                     <XMI.field>100.0</XMI.field>
                     <XMI.field>86.0</XMI.field>
                   </UML:GraphNode.size>
                   <UML:DiagramElement.property>
                     <UML:Property xmi.id = 'I122971bm10f72416043mm7e3d' key =
'fill' value
= '#ffffff'/>
                     <UML:Property xmi.id = 'I122971bm10f72416043mm7e3c' key =
'font-color'
value = '#000000'/>
                     <UML:Property xmi.id = 'I122971bm10f72416043mm7e3b' key =
'font-
family'
                       value = 'SansSerif'/>
                     <UML:Property xmi.id = 'I122971bm10f72416043mm7e3a' key =
'font-size'
value = '11'/>
                     <UML:Property xmi.id = 'I122971bm10f72416043mm7e39' key =
'stroke'
value = '#000000'/>
                   </UML:DiagramElement.property>
                   <UML:GraphElement.semanticModel>
                     <UML:Uml1SemanticModelBridge xmi.id =
'I122971bm10f72416043mm7e4e' presentation = ''>
                       <UML:Uml1SemanticModelBridge.element>
                         <UML:Class xmi.idref = 'I122971bm10f72416043mm7e50'/>
                       </UML:Uml1SemanticModelBridge.element>
                     </UML:Uml1SemanticModelBridge>
                   </UML:GraphElement.semanticModel>
                   <UML:GraphElement.contained>
                     <UML:GraphNode xmi.id = 'I122971bm10f72416043mm7e4d'
isVisible =
'true'>
                       <UML:GraphElement.position>
                         <XMI.field>1.0</XMI.field>
                         <XMI.field>1.0</XMI.field>
                       </UML:GraphElement.position>
                       <UML:GraphNode.size>
                         <XMI.field>98.0</XMI.field>
                         <XMI.field>19.0</XMI.field>
                       </UML:GraphNode.size>
                       <UML:GraphElement.semanticModel>
                         <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7e4c' presentation = ''
                           typeInfo = 'NameCompartment'/>
                       </UML:GraphElement.semanticModel>
                       <UML:GraphElement.contained>
                         <UML:GraphNode xmi.id = 'I122971bm10f72416043mm7e4b'
isVisible =
'true'>
                           <UML:GraphElement.position>
                             <XMI.field>23.3289</XMI.field>
                             <XMI.field>2.0</XMI.field>
                           </UML:GraphElement.position>
                           <UML:GraphNode.size>
                             <XMI.field>51.3423</XMI.field>
                             <XMI.field>15.0</XMI.field>
                           </UML:GraphNode.size>
                           <UML:GraphElement.semanticModel>
                             <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7e4a' presentation = ''
                               typeInfo = 'Name'/>
                           </UML:GraphElement.semanticModel>
                         </UML:GraphNode>
                       </UML:GraphElement.contained>
                     </UML:GraphNode>
                     <UML:GraphNode xmi.id = 'I122971bm10f72416043mm7e49'
isVisible =
'true'>
                       <UML:GraphElement.position>
                         <XMI.field>1.0</XMI.field>
                         <XMI.field>20.0</XMI.field>
                       </UML:GraphElement.position>
                       <UML:GraphNode.size>
                         <XMI.field>98.0</XMI.field>
                         <XMI.field>1.0</XMI.field>
                       </UML:GraphNode.size>
                       <UML:GraphElement.semanticModel>
                         <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7e48' presentation = ''
                           typeInfo = 'CompartmentSeparator'/>
                       </UML:GraphElement.semanticModel>
                     </UML:GraphNode>
                     <UML:GraphNode xmi.id = 'I122971bm10f72416043mm7e47'
isVisible =
'true'>
                       <UML:GraphElement.position>
                         <XMI.field>1.0</XMI.field>
                         <XMI.field>21.0</XMI.field>
                       </UML:GraphElement.position>
                       <UML:GraphNode.size>
                         <XMI.field>98.0</XMI.field>
                         <XMI.field>39.0</XMI.field>
                       </UML:GraphNode.size>
                       <UML:GraphElement.semanticModel>
                         <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7e46' presentation = ''
                           typeInfo = 'AttributeCompartment'/>
                       </UML:GraphElement.semanticModel>
                       <UML:GraphElement.contained>
                         <UML:GraphNode xmi.id = 'I122971bm10f72416043mm7e45'
isVisible =
'true'>
                           <UML:GraphElement.position>
                             <XMI.field>2.0</XMI.field>
                             <XMI.field>2.0</XMI.field>
                           </UML:GraphElement.position>
                           <UML:GraphNode.size>
                             <XMI.field>94.0</XMI.field>
                             <XMI.field>35.0</XMI.field>
                           </UML:GraphNode.size>
                           <UML:GraphElement.semanticModel>
                             <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7e44' presentation = ''
                               typeInfo = 'DelimitedSection'/>
                           </UML:GraphElement.semanticModel>
                           <UML:GraphElement.contained>
                             <UML:GraphNode xmi.id = 'I122971bm10f72416043mm7e33'
isVisible
= 'true'>
                               <UML:GraphElement.position>
                                 <XMI.field>2.0</XMI.field>
                                 <XMI.field>2.0</XMI.field>
                               </UML:GraphElement.position>
                               <UML:GraphNode.size>
                                 <XMI.field>90.0</XMI.field>
                                 <XMI.field>15.0</XMI.field>
                               </UML:GraphNode.size>
                               <UML:DiagramElement.property>
                                 <UML:Property xmi.id =
'I122971bm10f72416043mm7e31' key =
'gentleware-custom-width'
                                   value = '0.0'/>
                                 <UML:Property xmi.id =
'I122971bm10f72416043mm7e30' key =
'gentleware-custom-height'
                                   value = '0.0'/>
                               </UML:DiagramElement.property>
                               <UML:GraphElement.semanticModel>
                                 <UML:Uml1SemanticModelBridge xmi.id =
'I122971bm10f72416043mm7e32' presentation = ''>
                                   <UML:Uml1SemanticModelBridge.element>
                                     <UML:Attribute xmi.idref =
'I122971bm10f72416043mm7e34'/>
                                   </UML:Uml1SemanticModelBridge.element>
                                 </UML:Uml1SemanticModelBridge>
                               </UML:GraphElement.semanticModel>
                               <UML:GraphElement.contained>
                                 <UML:GraphNode xmi.id =
'I122971bm10f72416043mm7e2f'
isVisible = 'true'>
                                   <UML:GraphElement.position>
                                     <XMI.field>0.0</XMI.field>
                                     <XMI.field>0.0</XMI.field>
                                   </UML:GraphElement.position>
                                   <UML:GraphNode.size>
                                     <XMI.field>3.6631</XMI.field>
                                     <XMI.field>15.0</XMI.field>
                                   </UML:GraphNode.size>
                                   <UML:GraphElement.semanticModel>
                                     <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7e2e' presentation = ''
                                       typeInfo = 'Visibility'/>
                                   </UML:GraphElement.semanticModel>
                                 </UML:GraphNode>
                                 <UML:GraphNode xmi.id =
'I122971bm10f72416043mm7e2d'
isVisible = 'true'>
                                   <UML:GraphElement.position>
                                     <XMI.field>3.6631</XMI.field>
                                     <XMI.field>0.0</XMI.field>
                                   </UML:GraphElement.position>
                                   <UML:GraphNode.size>
                                     <XMI.field>51.3691</XMI.field>
                                     <XMI.field>15.0</XMI.field>
                                   </UML:GraphNode.size>
                                   <UML:GraphElement.semanticModel>
                                     <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7e2c' presentation = ''
                                       typeInfo = 'Name'/>
                                   </UML:GraphElement.semanticModel>
                                 </UML:GraphNode>
                                 <UML:GraphNode xmi.id =
'I122971bm10f72416043mm7e2b'
isVisible = 'true'>
                                   <UML:GraphElement.position>
                                     <XMI.field>55.0322</XMI.field>
                                     <XMI.field>0.0</XMI.field>
                                   </UML:GraphElement.position>
                                   <UML:GraphNode.size>
                                     <XMI.field>3.0562</XMI.field>
                                     <XMI.field>15.0</XMI.field>
                                   </UML:GraphNode.size>
                                   <UML:GraphElement.semanticModel>
                                     <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7e2a' presentation = ''
                                       typeInfo = 'TypeSeparator'/>
                                   </UML:GraphElement.semanticModel>
                                 </UML:GraphNode>
                                 <UML:GraphNode xmi.id =
'I122971bm10f72416043mm7e29'
isVisible = 'true'>
                                   <UML:GraphElement.position>
                                     <XMI.field>58.0884</XMI.field>
                                     <XMI.field>0.0</XMI.field>
                                   </UML:GraphElement.position>
                                   <UML:GraphNode.size>
                                     <XMI.field>28.7354</XMI.field>
                                     <XMI.field>15.0</XMI.field>
                                   </UML:GraphNode.size>
                                   <UML:GraphElement.semanticModel>
                                     <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7e28' presentation = ''
                                       typeInfo = 'StructuralFeatureType'/>
                                   </UML:GraphElement.semanticModel>
                                   <UML:GraphElement.contained>
                                     <UML:GraphNode xmi.id =
'I122971bm10f72416043mm7e27'
isVisible = 'true'>
                                       <UML:GraphElement.position>
                                         <XMI.field>0.0</XMI.field>
                                         <XMI.field>0.0</XMI.field>
                                       </UML:GraphElement.position>
                                       <UML:GraphNode.size>
                                         <XMI.field>28.7354</XMI.field>
                                         <XMI.field>15.0</XMI.field>
                                       </UML:GraphNode.size>
                                       <UML:GraphElement.semanticModel>
                                         <UML:Uml1SemanticModelBridge xmi.id =
'I122971bm10f72416043mm7e26' presentation = ''>
                                           <UML:Uml1SemanticModelBridge.element>
                                             <UML:DataType xmi.idref =
'I122971bm10f72416043mm7dde'/>
                                           </UML:Uml1SemanticModelBridge.element>
                                         </UML:Uml1SemanticModelBridge>
                                       </UML:GraphElement.semanticModel>
                                       <UML:GraphElement.contained>
                                         <UML:GraphNode xmi.id =
'I122971bm10f72416043mm7e25'
isVisible = 'true'>
                                           <UML:GraphElement.position>
                                             <XMI.field>0.0</XMI.field>
                                             <XMI.field>0.0</XMI.field>
                                           </UML:GraphElement.position>
                                           <UML:GraphNode.size>
                                             <XMI.field>28.7354</XMI.field>
                                             <XMI.field>15.0</XMI.field>
                                           </UML:GraphNode.size>
                                           <UML:GraphElement.semanticModel>
                                             <UML:SimpleSemanticModelElement
xmi.id =
'I122971bm10f72416043mm7e24' presentation = ''
                                               typeInfo = 'Name'/>
                                           </UML:GraphElement.semanticModel>
                                         </UML:GraphNode>
                                       </UML:GraphElement.contained>
                                     </UML:GraphNode>
                                   </UML:GraphElement.contained>
                                 </UML:GraphNode>
                               </UML:GraphElement.contained>
                             </UML:GraphNode>
                             <UML:GraphNode xmi.id = 'I122971bm10f72416043mm7d9d'
isVisible
= 'true'>
                               <UML:GraphElement.position>
                                 <XMI.field>2.0</XMI.field>
                                 <XMI.field>18.0</XMI.field>
                               </UML:GraphElement.position>
                               <UML:GraphNode.size>
                                 <XMI.field>90.0</XMI.field>
                                 <XMI.field>15.0</XMI.field>
                               </UML:GraphNode.size>
                               <UML:DiagramElement.property>
                                 <UML:Property xmi.id =
'I122971bm10f72416043mm7d9b' key =
'gentleware-custom-width'
                                   value = '0.0'/>
                                 <UML:Property xmi.id =
'I122971bm10f72416043mm7d9a' key =
'gentleware-custom-height'
                                   value = '0.0'/>
                               </UML:DiagramElement.property>
                               <UML:GraphElement.semanticModel>
                                 <UML:Uml1SemanticModelBridge xmi.id =
'I122971bm10f72416043mm7d9c' presentation = ''>
                                   <UML:Uml1SemanticModelBridge.element>
                                     <UML:Attribute xmi.idref =
'I122971bm10f72416043mm7d9e'/>
                                   </UML:Uml1SemanticModelBridge.element>
                                 </UML:Uml1SemanticModelBridge>
                               </UML:GraphElement.semanticModel>
                               <UML:GraphElement.contained>
                                 <UML:GraphNode xmi.id =
'I122971bm10f72416043mm7d99'
isVisible = 'true'>
                                   <UML:GraphElement.position>
                                     <XMI.field>0.0</XMI.field>
                                     <XMI.field>0.0</XMI.field>
                                   </UML:GraphElement.position>
                                   <UML:GraphNode.size>
                                     <XMI.field>3.6631</XMI.field>
                                     <XMI.field>15.0</XMI.field>
                                   </UML:GraphNode.size>
                                   <UML:GraphElement.semanticModel>
                                     <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7d98' presentation = ''
                                       typeInfo = 'Visibility'/>
                                   </UML:GraphElement.semanticModel>
                                 </UML:GraphNode>
                                 <UML:GraphNode xmi.id =
'I122971bm10f72416043mm7d97'
isVisible = 'true'>
                                   <UML:GraphElement.position>
                                     <XMI.field>3.6631</XMI.field>
                                     <XMI.field>0.0</XMI.field>
                                   </UML:GraphElement.position>
                                   <UML:GraphNode.size>
                                     <XMI.field>12.8369</XMI.field>
                                     <XMI.field>15.0</XMI.field>
                                   </UML:GraphNode.size>
                                   <UML:GraphElement.semanticModel>
                                     <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7d96' presentation = ''
                                       typeInfo = 'Name'/>
                                   </UML:GraphElement.semanticModel>
                                 </UML:GraphNode>
                                 <UML:GraphNode xmi.id =
'I122971bm10f72416043mm7d95'
isVisible = 'true'>
                                   <UML:GraphElement.position>
                                     <XMI.field>16.5</XMI.field>
                                     <XMI.field>0.0</XMI.field>
                                   </UML:GraphElement.position>
                                   <UML:GraphNode.size>
                                     <XMI.field>3.0562</XMI.field>
                                     <XMI.field>15.0</XMI.field>
                                   </UML:GraphNode.size>
                                   <UML:GraphElement.semanticModel>
                                     <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7d94' presentation = ''
                                       typeInfo = 'TypeSeparator'/>
                                   </UML:GraphElement.semanticModel>
                                 </UML:GraphNode>
                                 <UML:GraphNode xmi.id =
'I122971bm10f72416043mm7d93'
isVisible = 'true'>
                                   <UML:GraphElement.position>
                                     <XMI.field>19.5562</XMI.field>
                                     <XMI.field>0.0</XMI.field>
                                   </UML:GraphElement.position>
                                   <UML:GraphNode.size>
                                     <XMI.field>28.7354</XMI.field>
                                     <XMI.field>15.0</XMI.field>
                                   </UML:GraphNode.size>
                                   <UML:GraphElement.semanticModel>
                                     <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7d92' presentation = ''
                                       typeInfo = 'StructuralFeatureType'/>
                                   </UML:GraphElement.semanticModel>
                                   <UML:GraphElement.contained>
                                     <UML:GraphNode xmi.id =
'I122971bm10f72416043mm7d91'
isVisible = 'true'>
                                       <UML:GraphElement.position>
                                         <XMI.field>0.0</XMI.field>
                                         <XMI.field>0.0</XMI.field>
                                       </UML:GraphElement.position>
                                       <UML:GraphNode.size>
                                         <XMI.field>28.7354</XMI.field>
                                         <XMI.field>15.0</XMI.field>
                                       </UML:GraphNode.size>
                                       <UML:GraphElement.semanticModel>
                                         <UML:Uml1SemanticModelBridge xmi.id =
'I122971bm10f72416043mm7d90' presentation = ''>
                                           <UML:Uml1SemanticModelBridge.element>
                                             <UML:DataType xmi.idref =
'I122971bm10f72416043mm7dde'/>
                                           </UML:Uml1SemanticModelBridge.element>
                                         </UML:Uml1SemanticModelBridge>
                                       </UML:GraphElement.semanticModel>
                                       <UML:GraphElement.contained>
                                         <UML:GraphNode xmi.id =
'I122971bm10f72416043mm7d8f'
isVisible = 'true'>
                                           <UML:GraphElement.position>
                                             <XMI.field>0.0</XMI.field>
                                             <XMI.field>0.0</XMI.field>
                                           </UML:GraphElement.position>
                                           <UML:GraphNode.size>
                                             <XMI.field>28.7354</XMI.field>
                                             <XMI.field>15.0</XMI.field>
                                           </UML:GraphNode.size>
                                           <UML:GraphElement.semanticModel>
                                             <UML:SimpleSemanticModelElement
xmi.id =
'I122971bm10f72416043mm7d8e' presentation = ''
                                               typeInfo = 'Name'/>
                                           </UML:GraphElement.semanticModel>
                                         </UML:GraphNode>
                                       </UML:GraphElement.contained>
                                     </UML:GraphNode>
                                   </UML:GraphElement.contained>
                                 </UML:GraphNode>
                               </UML:GraphElement.contained>
                             </UML:GraphNode>
                           </UML:GraphElement.contained>
                         </UML:GraphNode>
                       </UML:GraphElement.contained>
                     </UML:GraphNode>
                     <UML:GraphNode xmi.id = 'I122971bm10f72416043mm7e43'
isVisible =
'true'>
                       <UML:GraphElement.position>
                         <XMI.field>1.0</XMI.field>
                         <XMI.field>60.0</XMI.field>
                       </UML:GraphElement.position>
                       <UML:GraphNode.size>
                         <XMI.field>98.0</XMI.field>
                         <XMI.field>1.0</XMI.field>
                       </UML:GraphNode.size>
                       <UML:GraphElement.semanticModel>
                         <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7e42' presentation = ''
                           typeInfo = 'CompartmentSeparator'/>
                       </UML:GraphElement.semanticModel>
                     </UML:GraphNode>
                     <UML:GraphNode xmi.id = 'I122971bm10f72416043mm7e41'
isVisible =
'true'>
                       <UML:GraphElement.position>
                         <XMI.field>1.0</XMI.field>
                         <XMI.field>61.0</XMI.field>
                       </UML:GraphElement.position>
                       <UML:GraphNode.size>
                         <XMI.field>98.0</XMI.field>
                         <XMI.field>24.0</XMI.field>
                       </UML:GraphNode.size>
                       <UML:GraphElement.semanticModel>
                         <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7e40' presentation = ''
                           typeInfo = 'OperationCompartment'/>
                       </UML:GraphElement.semanticModel>
                       <UML:GraphElement.contained>
                         <UML:GraphNode xmi.id = 'I122971bm10f72416043mm7e3f'
isVisible =
'true'>
                           <UML:GraphElement.position>
                             <XMI.field>2.0</XMI.field>
                             <XMI.field>2.0</XMI.field>
                           </UML:GraphElement.position>
                           <UML:GraphNode.size>
                             <XMI.field>94.0</XMI.field>
                             <XMI.field>20.0</XMI.field>
                           </UML:GraphNode.size>
                           <UML:GraphElement.semanticModel>
                             <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7e3e' presentation = ''
                               typeInfo = 'DelimitedSection'/>
                           </UML:GraphElement.semanticModel>
                         </UML:GraphNode>
                       </UML:GraphElement.contained>
                     </UML:GraphNode>
                   </UML:GraphElement.contained>
                   <UML:GraphElement.anchorage>
                     <UML:GraphConnector xmi.id = 'I122971bm10f72416043mm7be6'>
                       <UML:GraphConnector.position>
                         <XMI.field>100.0</XMI.field>
                         <XMI.field>43.0</XMI.field>
                       </UML:GraphConnector.position>
                       <UML:GraphConnector.graphEdge>
                         <UML:GraphEdge xmi.idref =
'I122971bm10f72416043mm7be4'/>
                       </UML:GraphConnector.graphEdge>
                     </UML:GraphConnector>
                   </UML:GraphElement.anchorage>
                 </UML:GraphNode>
                 <UML:GraphEdge xmi.id = 'I122971bm10f72416043mm7be4' isVisible =
'true'>
                   <UML:GraphElement.position>
                     <XMI.field>0.0</XMI.field>
                     <XMI.field>0.0</XMI.field>
                   </UML:GraphElement.position>
                   <UML:GraphEdge.waypoints>
                     <XMI.field>
                       <XMI.field>110.0</XMI.field>
                       <XMI.field>53.0</XMI.field>
                     </XMI.field>
                     <XMI.field>
                       <XMI.field>0.0</XMI.field>
                       <XMI.field>0.0</XMI.field>
                     </XMI.field>
                     <XMI.field>
                       <XMI.field>0.0</XMI.field>
                       <XMI.field>0.0</XMI.field>
                     </XMI.field>
                     <XMI.field>
                       <XMI.field>210.0</XMI.field>
                       <XMI.field>53.0</XMI.field>
                     </XMI.field>
                     <XMI.field>
                       <XMI.field>0.0</XMI.field>
                       <XMI.field>0.0</XMI.field>
                     </XMI.field>
                     <XMI.field>
                       <XMI.field>0.0</XMI.field>
                       <XMI.field>0.0</XMI.field>
                     </XMI.field>
                   </UML:GraphEdge.waypoints>
                   <UML:DiagramElement.property>
                     <UML:Property xmi.id = 'I122971bm10f72416043mm7bca' key =
'fill' value
= '#ffffff'/>
                     <UML:Property xmi.id = 'I122971bm10f72416043mm7bc9' key =
'font-
color' value = '#000000'/>
                     <UML:Property xmi.id = 'I122971bm10f72416043mm7bc8' key =
'font-
family'
                       value = 'SansSerif'/>
                     <UML:Property xmi.id = 'I122971bm10f72416043mm7bc7' key =
'font-size'
value = '11'/>
                     <UML:Property xmi.id = 'I122971bm10f72416043mm7bc6' key =
'stroke'
value = '#000000'/>
                   </UML:DiagramElement.property>
                   <UML:GraphElement.semanticModel>
                     <UML:Uml1SemanticModelBridge xmi.id =
'I122971bm10f72416043mm7be3' presentation = ''>
                       <UML:Uml1SemanticModelBridge.element>
                         <UML:Association xmi.idref =
'I122971bm10f72416043mm7be7'/>
                       </UML:Uml1SemanticModelBridge.element>
                     </UML:Uml1SemanticModelBridge>
                   </UML:GraphElement.semanticModel>
                   <UML:GraphElement.contained>
                     <UML:GraphNode xmi.id = 'I122971bm10f72416043mm7be2'
isVisible =
'true'>
                       <UML:GraphElement.position>
                         <XMI.field>110.0</XMI.field>
                         <XMI.field>53.0</XMI.field>
                       </UML:GraphElement.position>
                       <UML:GraphNode.size>
                         <XMI.field>0.0</XMI.field>
                         <XMI.field>0.0</XMI.field>
                       </UML:GraphNode.size>
                       <UML:DiagramElement.property>
                         <UML:Property xmi.id = 'I122971bm10f72416043mm7be0' key
=
'gentleware-custom-width'
                           value = '0.0'/>
                         <UML:Property xmi.id = 'I122971bm10f72416043mm7bdf' key
=
'gentleware-custom-height'
                           value = '0.0'/>
                       </UML:DiagramElement.property>
                       <UML:GraphElement.semanticModel>
                         <UML:Uml1SemanticModelBridge xmi.id =
'I122971bm10f72416043mm7be1' presentation = ''>
                           <UML:Uml1SemanticModelBridge.element>
                             <UML:AssociationEnd xmi.idref =
'I122971bm10f72416043mm7bed'/>
                           </UML:Uml1SemanticModelBridge.element>
                         </UML:Uml1SemanticModelBridge>
                       </UML:GraphElement.semanticModel>
                       <UML:GraphElement.contained>
                         <UML:GraphNode xmi.id = 'I122971bm10f72416043mm7bde'
isVisible =
'false'>
                           <UML:GraphElement.position>
                             <XMI.field>12.9904</XMI.field>
                             <XMI.field>5.6754</XMI.field>
                           </UML:GraphElement.position>
                           <UML:GraphNode.size>
                             <XMI.field>31.1899</XMI.field>
                             <XMI.field>15.0</XMI.field>
                           </UML:GraphNode.size>
                           <UML:GraphElement.semanticModel>
                             <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7bdd' presentation = ''
                               typeInfo = 'Name'/>
                           </UML:GraphElement.semanticModel>
                         </UML:GraphNode>
                         <UML:GraphNode xmi.id = 'I122971bm10f72416043mm7bdc'
isVisible =
'false'>
                           <UML:GraphElement.position>
                             <XMI.field>4.5666</XMI.field>
                             <XMI.field>5.6754</XMI.field>
                           </UML:GraphElement.position>
                           <UML:GraphNode.size>
                             <XMI.field>6.4238</XMI.field>
                             <XMI.field>15.0</XMI.field>
                           </UML:GraphNode.size>
                           <UML:GraphElement.semanticModel>
                             <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7bdb' presentation = ''
                               typeInfo = 'Visibility'/>
                           </UML:GraphElement.semanticModel>
                         </UML:GraphNode>
                         <UML:GraphNode xmi.id = 'I122971bm10f72416043mm7bda'
isVisible =
'false'>
                           <UML:GraphElement.position>
                             <XMI.field>12.9904</XMI.field>
                             <XMI.field>-22.5</XMI.field>
                           </UML:GraphElement.position>
                           <UML:GraphNode.size>
                             <XMI.field>6.1177</XMI.field>
                             <XMI.field>15.0</XMI.field>
                           </UML:GraphNode.size>
                           <UML:GraphElement.semanticModel>
                             <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7bd9' presentation = ''
                               typeInfo = 'Multiplicity'/>
                           </UML:GraphElement.semanticModel>
                         </UML:GraphNode>
                       </UML:GraphElement.contained>
                     </UML:GraphNode>
                     <UML:GraphNode xmi.id = 'I122971bm10f72416043mm7bd8'
isVisible =
'true'>
                       <UML:GraphElement.position>
                         <XMI.field>210.0</XMI.field>
                         <XMI.field>53.0</XMI.field>
                       </UML:GraphElement.position>
                       <UML:GraphNode.size>
                         <XMI.field>0.0</XMI.field>
                         <XMI.field>0.0</XMI.field>
                       </UML:GraphNode.size>
                       <UML:DiagramElement.property>
                         <UML:Property xmi.id = 'I122971bm10f72416043mm7bd6' key
=
'gentleware-custom-width'
                           value = '0.0'/>
                         <UML:Property xmi.id = 'I122971bm10f72416043mm7bd5' key
=
'gentleware-custom-height'
                           value = '0.0'/>
                       </UML:DiagramElement.property>
                       <UML:GraphElement.semanticModel>
                         <UML:Uml1SemanticModelBridge xmi.id =
'I122971bm10f72416043mm7bd7' presentation = ''>
                           <UML:Uml1SemanticModelBridge.element>
                             <UML:AssociationEnd xmi.idref =
'I122971bm10f72416043mm7bea'/>
                           </UML:Uml1SemanticModelBridge.element>
                         </UML:Uml1SemanticModelBridge>
                       </UML:GraphElement.semanticModel>
                       <UML:GraphElement.contained>
                         <UML:GraphNode xmi.id = 'I122971bm10f72416043mm7bd4'
isVisible =
'false'>
                           <UML:GraphElement.position>
                             <XMI.field>-44.1803</XMI.field>
                             <XMI.field>-20.6754</XMI.field>
                           </UML:GraphElement.position>
                           <UML:GraphNode.size>
                             <XMI.field>31.1899</XMI.field>
                             <XMI.field>15.0</XMI.field>
                           </UML:GraphNode.size>
                           <UML:GraphElement.semanticModel>
                             <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7bd3' presentation = ''
                               typeInfo = 'Name'/>
                           </UML:GraphElement.semanticModel>
                         </UML:GraphNode>
                         <UML:GraphNode xmi.id = 'I122971bm10f72416043mm7bd2'
isVisible =
'false'>
                           <UML:GraphElement.position>
                             <XMI.field>-52.6041</XMI.field>
                             <XMI.field>-20.6754</XMI.field>
                           </UML:GraphElement.position>
                           <UML:GraphNode.size>
                             <XMI.field>6.4238</XMI.field>
                             <XMI.field>15.0</XMI.field>
                           </UML:GraphNode.size>
                           <UML:GraphElement.semanticModel>
                             <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7bd1' presentation = ''
                               typeInfo = 'Visibility'/>
                           </UML:GraphElement.semanticModel>
                         </UML:GraphNode>
                         <UML:GraphNode xmi.id = 'I122971bm10f72416043mm7bd0'
isVisible =
'true'>
                           <UML:GraphElement.position>
                             <XMI.field>-17.2712</XMI.field>
                             <XMI.field>7.5</XMI.field>
                           </UML:GraphElement.position>
                           <UML:GraphNode.size>
                             <XMI.field>4.2808</XMI.field>
                             <XMI.field>15.0</XMI.field>
                           </UML:GraphNode.size>
                           <UML:GraphElement.semanticModel>
                             <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7bcf' presentation = ''
                               typeInfo = 'Multiplicity'/>
                           </UML:GraphElement.semanticModel>
                         </UML:GraphNode>
                       </UML:GraphElement.contained>
                     </UML:GraphNode>
                     <UML:GraphNode xmi.id = 'I122971bm10f72416043mm7bce'
isVisible =
'false'>
                       <UML:GraphElement.position>
                         <XMI.field>139.8181</XMI.field>
                         <XMI.field>63.0</XMI.field>
                       </UML:GraphElement.position>
                       <UML:GraphNode.size>
                         <XMI.field>40.3638</XMI.field>
                         <XMI.field>15.0</XMI.field>
                       </UML:GraphNode.size>
                       <UML:GraphElement.semanticModel>
                         <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7bcd' presentation = ''
                           typeInfo = 'DirectedName'/>
                       </UML:GraphElement.semanticModel>
                       <UML:GraphElement.contained>
                         <UML:GraphNode xmi.id = 'I122971bm10f72416043mm7bcc'
isVisible =
'true'>
                           <UML:GraphElement.position>
                             <XMI.field>0.0</XMI.field>
                             <XMI.field>0.0</XMI.field>
                           </UML:GraphElement.position>
                           <UML:GraphNode.size>
                             <XMI.field>40.3638</XMI.field>
                             <XMI.field>15.0</XMI.field>
                           </UML:GraphNode.size>
                           <UML:GraphElement.semanticModel>
                             <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7bcb' presentation = ''
                               typeInfo = 'Name'/>
                           </UML:GraphElement.semanticModel>
                         </UML:GraphNode>
                       </UML:GraphElement.contained>
                     </UML:GraphNode>
                   </UML:GraphElement.contained>
                   <UML:GraphEdge.anchor>
                     <UML:GraphConnector xmi.idref =
'I122971bm10f72416043mm7be6'/>
                     <UML:GraphConnector xmi.idref =
'I122971bm10f72416043mm7be5'/>
                   </UML:GraphEdge.anchor>
                 </UML:GraphEdge>
                 <UML:GraphEdge xmi.id = 'I122971bm10f72416043mm7b52' isVisible =
'true'>
                   <UML:GraphElement.position>
                     <XMI.field>0.0</XMI.field>
                     <XMI.field>0.0</XMI.field>
                   </UML:GraphElement.position>
                   <UML:GraphEdge.waypoints>
                     <XMI.field>
                       <XMI.field>278.5</XMI.field>
                       <XMI.field>96.0</XMI.field>
                     </XMI.field>
                     <XMI.field>
                       <XMI.field>0.0</XMI.field>
                       <XMI.field>0.0</XMI.field>
                     </XMI.field>
                     <XMI.field>
                       <XMI.field>0.0</XMI.field>
                       <XMI.field>0.0</XMI.field>
                     </XMI.field>
                     <XMI.field>
                       <XMI.field>278.5</XMI.field>
                       <XMI.field>150.0</XMI.field>
                     </XMI.field>
                     <XMI.field>
                       <XMI.field>0.0</XMI.field>
                       <XMI.field>0.0</XMI.field>
                     </XMI.field>
                     <XMI.field>
                       <XMI.field>0.0</XMI.field>
                       <XMI.field>0.0</XMI.field>
                     </XMI.field>
                   </UML:GraphEdge.waypoints>
                   <UML:DiagramElement.property>
                     <UML:Property xmi.id = 'I122971bm10f72416043mm7b38' key =
'fill' value
= '#ffffff'/>
                     <UML:Property xmi.id = 'I122971bm10f72416043mm7b37' key =
'font-
color' value = '#000000'/>
                     <UML:Property xmi.id = 'I122971bm10f72416043mm7b36' key =
'font-
family'
                       value = 'SansSerif'/>
                     <UML:Property xmi.id = 'I122971bm10f72416043mm7b35' key =
'font-size'
value = '11'/>
                     <UML:Property xmi.id = 'I122971bm10f72416043mm7b34' key =
'stroke'
value = '#000000'/>
                   </UML:DiagramElement.property>
                   <UML:GraphElement.semanticModel>
                     <UML:Uml1SemanticModelBridge xmi.id =
'I122971bm10f72416043mm7b51' presentation = ''>
                       <UML:Uml1SemanticModelBridge.element>
                         <UML:Association xmi.idref =
'I122971bm10f72416043mm7b55'/>
                       </UML:Uml1SemanticModelBridge.element>
                     </UML:Uml1SemanticModelBridge>
                   </UML:GraphElement.semanticModel>
                   <UML:GraphElement.contained>
                     <UML:GraphNode xmi.id = 'I122971bm10f72416043mm7b50'
isVisible =
'true'>
                       <UML:GraphElement.position>
                         <XMI.field>278.5</XMI.field>
                         <XMI.field>96.0</XMI.field>
                       </UML:GraphElement.position>
                       <UML:GraphNode.size>
                         <XMI.field>0.0</XMI.field>
                         <XMI.field>0.0</XMI.field>
                       </UML:GraphNode.size>
                       <UML:DiagramElement.property>
                         <UML:Property xmi.id = 'I122971bm10f72416043mm7b4e' key
=
'gentleware-custom-width'
                           value = '0.0'/>
                         <UML:Property xmi.id = 'I122971bm10f72416043mm7b4d' key
=
'gentleware-custom-height'
                           value = '0.0'/>
                       </UML:DiagramElement.property>
                       <UML:GraphElement.semanticModel>
                         <UML:Uml1SemanticModelBridge xmi.id =
'I122971bm10f72416043mm7b4f' presentation = ''>
                           <UML:Uml1SemanticModelBridge.element>
                             <UML:AssociationEnd xmi.idref =
'I122971bm10f72416043mm7b5b'/>
                           </UML:Uml1SemanticModelBridge.element>
                         </UML:Uml1SemanticModelBridge>
                       </UML:GraphElement.semanticModel>
                       <UML:GraphElement.contained>
                         <UML:GraphNode xmi.id = 'I122971bm10f72416043mm7b4c'
isVisible =
'false'>
                           <UML:GraphElement.position>
                             <XMI.field>-38.6899</XMI.field>
                             <XMI.field>12.9904</XMI.field>
                           </UML:GraphElement.position>
                           <UML:GraphNode.size>
                             <XMI.field>31.1899</XMI.field>
                             <XMI.field>15.0</XMI.field>
                           </UML:GraphNode.size>
                           <UML:GraphElement.semanticModel>
                             <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7b4b' presentation = ''
                               typeInfo = 'Name'/>
                           </UML:GraphElement.semanticModel>
                         </UML:GraphNode>
                         <UML:GraphNode xmi.id = 'I122971bm10f72416043mm7b4a'
isVisible =
'false'>
                           <UML:GraphElement.position>
                             <XMI.field>-47.1137</XMI.field>
                             <XMI.field>12.9904</XMI.field>
                           </UML:GraphElement.position>
                           <UML:GraphNode.size>
                             <XMI.field>6.4238</XMI.field>
                             <XMI.field>15.0</XMI.field>
                           </UML:GraphNode.size>
                           <UML:GraphElement.semanticModel>
                             <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7b49' presentation = ''
                               typeInfo = 'Visibility'/>
                           </UML:GraphElement.semanticModel>
                         </UML:GraphNode>
                         <UML:GraphNode xmi.id = 'I122971bm10f72416043mm7b48'
isVisible =
'false'>
                           <UML:GraphElement.position>
                             <XMI.field>6.4241</XMI.field>
                             <XMI.field>12.9904</XMI.field>
                           </UML:GraphElement.position>
                           <UML:GraphNode.size>
                             <XMI.field>6.1177</XMI.field>
                             <XMI.field>15.0</XMI.field>
                           </UML:GraphNode.size>
                           <UML:GraphElement.semanticModel>
                             <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7b47' presentation = ''
                               typeInfo = 'Multiplicity'/>
                           </UML:GraphElement.semanticModel>
                         </UML:GraphNode>
                       </UML:GraphElement.contained>
                     </UML:GraphNode>
                     <UML:GraphNode xmi.id = 'I122971bm10f72416043mm7b46'
isVisible =
'true'>
                       <UML:GraphElement.position>
                         <XMI.field>278.5</XMI.field>
                         <XMI.field>150.0</XMI.field>
                       </UML:GraphElement.position>
                       <UML:GraphNode.size>
                         <XMI.field>0.0</XMI.field>
                         <XMI.field>0.0</XMI.field>
                       </UML:GraphNode.size>
                       <UML:DiagramElement.property>
                         <UML:Property xmi.id = 'I122971bm10f72416043mm7b44' key
=
'gentleware-custom-width'
                           value = '0.0'/>
                         <UML:Property xmi.id = 'I122971bm10f72416043mm7b43' key
=
'gentleware-custom-height'
                           value = '0.0'/>
                       </UML:DiagramElement.property>
                       <UML:GraphElement.semanticModel>
                         <UML:Uml1SemanticModelBridge xmi.id =
'I122971bm10f72416043mm7b45' presentation = ''>
                           <UML:Uml1SemanticModelBridge.element>
                             <UML:AssociationEnd xmi.idref =
'I122971bm10f72416043mm7b58'/>
                           </UML:Uml1SemanticModelBridge.element>
                         </UML:Uml1SemanticModelBridge>
                       </UML:GraphElement.semanticModel>
                       <UML:GraphElement.contained>
                         <UML:GraphNode xmi.id = 'I122971bm10f72416043mm7b42'
isVisible =
'false'>
                           <UML:GraphElement.position>
                             <XMI.field>7.5</XMI.field>
                             <XMI.field>-27.9904</XMI.field>
                           </UML:GraphElement.position>
                           <UML:GraphNode.size>
                             <XMI.field>31.1899</XMI.field>
                             <XMI.field>15.0</XMI.field>
                           </UML:GraphNode.size>
                           <UML:GraphElement.semanticModel>
                             <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7b41' presentation = ''
                               typeInfo = 'Name'/>
                           </UML:GraphElement.semanticModel>
                         </UML:GraphNode>
                         <UML:GraphNode xmi.id = 'I122971bm10f72416043mm7b40'
isVisible =
'false'>
                           <UML:GraphElement.position>
                             <XMI.field>-0.9238</XMI.field>
                             <XMI.field>-27.9904</XMI.field>
                           </UML:GraphElement.position>
                           <UML:GraphNode.size>
                             <XMI.field>6.4238</XMI.field>
                             <XMI.field>15.0</XMI.field>
                           </UML:GraphNode.size>
                           <UML:GraphElement.semanticModel>
                             <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7b3f' presentation = ''
                               typeInfo = 'Visibility'/>
                           </UML:GraphElement.semanticModel>
                         </UML:GraphNode>
                         <UML:GraphNode xmi.id = 'I122971bm10f72416043mm7b3e'
isVisible =
'true'>
                           <UML:GraphElement.position>
                             <XMI.field>-10.6246</XMI.field>
                             <XMI.field>-27.9904</XMI.field>
                           </UML:GraphElement.position>
                           <UML:GraphNode.size>
                             <XMI.field>4.2808</XMI.field>
                             <XMI.field>15.0</XMI.field>
                           </UML:GraphNode.size>
                           <UML:GraphElement.semanticModel>
                             <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7b3d' presentation = ''
                               typeInfo = 'Multiplicity'/>
                           </UML:GraphElement.semanticModel>
                         </UML:GraphNode>
                       </UML:GraphElement.contained>
                     </UML:GraphNode>
                     <UML:GraphNode xmi.id = 'I122971bm10f72416043mm7b3c'
isVisible =
'false'>
                       <UML:GraphElement.position>
                         <XMI.field>228.1362</XMI.field>
                         <XMI.field>115.5</XMI.field>
                       </UML:GraphElement.position>
                       <UML:GraphNode.size>
                         <XMI.field>40.3638</XMI.field>
                         <XMI.field>15.0</XMI.field>
                       </UML:GraphNode.size>
                       <UML:GraphElement.semanticModel>
                         <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7b3b' presentation = ''
                           typeInfo = 'DirectedName'/>
                       </UML:GraphElement.semanticModel>
                       <UML:GraphElement.contained>
                         <UML:GraphNode xmi.id = 'I122971bm10f72416043mm7b3a'
isVisible =
'true'>
                           <UML:GraphElement.position>
                             <XMI.field>0.0</XMI.field>
                             <XMI.field>0.0</XMI.field>
                           </UML:GraphElement.position>
                           <UML:GraphNode.size>
                             <XMI.field>40.3638</XMI.field>
                             <XMI.field>15.0</XMI.field>
                           </UML:GraphNode.size>
                           <UML:GraphElement.semanticModel>
                             <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7b39' presentation = ''
                               typeInfo = 'Name'/>
                           </UML:GraphElement.semanticModel>
                         </UML:GraphNode>
                       </UML:GraphElement.contained>
                     </UML:GraphNode>
                   </UML:GraphElement.contained>
                   <UML:GraphEdge.anchor>
                     <UML:GraphConnector xmi.idref =
'I122971bm10f72416043mm7b54'/>
                     <UML:GraphConnector xmi.idref =
'I122971bm10f72416043mm7b53'/>
                   </UML:GraphEdge.anchor>
                 </UML:GraphEdge>
                 <UML:GraphEdge xmi.id = 'I122971bm10f72416043mm7b17' isVisible =
'true'>
                   <UML:GraphElement.position>
                     <XMI.field>0.0</XMI.field>
                     <XMI.field>0.0</XMI.field>
                   </UML:GraphElement.position>
                   <UML:GraphEdge.waypoints>
                     <XMI.field>
                       <XMI.field>350.0</XMI.field>
                       <XMI.field>186.0</XMI.field>
                     </XMI.field>
                     <XMI.field>
                       <XMI.field>0.0</XMI.field>
                       <XMI.field>0.0</XMI.field>
                     </XMI.field>
                     <XMI.field>
                       <XMI.field>0.0</XMI.field>
                       <XMI.field>0.0</XMI.field>
                     </XMI.field>
                     <XMI.field>
                       <XMI.field>530.0</XMI.field>
                       <XMI.field>186.0</XMI.field>
                     </XMI.field>
                     <XMI.field>
                       <XMI.field>0.0</XMI.field>
                       <XMI.field>0.0</XMI.field>
                     </XMI.field>
                     <XMI.field>
                       <XMI.field>0.0</XMI.field>
                       <XMI.field>0.0</XMI.field>
                     </XMI.field>
                   </UML:GraphEdge.waypoints>
                   <UML:DiagramElement.property>
                     <UML:Property xmi.id = 'I122971bm10f72416043mm7afb' key =
'fill' value
= '#ffffff'/>
                     <UML:Property xmi.id = 'I122971bm10f72416043mm7afa' key =
'font-color'
value = '#000000'/>
                     <UML:Property xmi.id = 'I122971bm10f72416043mm7af9' key =
'font-
family'
                       value = 'SansSerif'/>
                     <UML:Property xmi.id = 'I122971bm10f72416043mm7af8' key =
'font-size'
value = '11'/>
                     <UML:Property xmi.id = 'I122971bm10f72416043mm7af7' key =
'stroke'
value = '#000000'/>
                   </UML:DiagramElement.property>
                   <UML:GraphElement.semanticModel>
                     <UML:Uml1SemanticModelBridge xmi.id =
'I122971bm10f72416043mm7b16' presentation = ''>
                       <UML:Uml1SemanticModelBridge.element>
                         <UML:Association xmi.idref =
'I122971bm10f72416043mm7b1a'/>
                       </UML:Uml1SemanticModelBridge.element>
                     </UML:Uml1SemanticModelBridge>
                   </UML:GraphElement.semanticModel>
                   <UML:GraphElement.contained>
                     <UML:GraphNode xmi.id = 'I122971bm10f72416043mm7b15'
isVisible =
'true'>
                       <UML:GraphElement.position>
                         <XMI.field>350.0</XMI.field>
                         <XMI.field>186.0</XMI.field>
                       </UML:GraphElement.position>
                       <UML:GraphNode.size>
                         <XMI.field>0.0</XMI.field>
                         <XMI.field>0.0</XMI.field>
                       </UML:GraphNode.size>
                       <UML:DiagramElement.property>
                         <UML:Property xmi.id = 'I122971bm10f72416043mm7b13' key
=
'gentleware-custom-width'
                           value = '0.0'/>
                         <UML:Property xmi.id = 'I122971bm10f72416043mm7b12' key
=
'gentleware-custom-height'
                           value = '0.0'/>
                       </UML:DiagramElement.property>
                       <UML:GraphElement.semanticModel>
                         <UML:Uml1SemanticModelBridge xmi.id =
'I122971bm10f72416043mm7b14' presentation = ''>
                           <UML:Uml1SemanticModelBridge.element>
                             <UML:AssociationEnd xmi.idref =
'I122971bm10f72416043mm7b20'/>
                           </UML:Uml1SemanticModelBridge.element>
                         </UML:Uml1SemanticModelBridge>
                       </UML:GraphElement.semanticModel>
                       <UML:GraphElement.contained>
                         <UML:GraphNode xmi.id = 'I122971bm10f72416043mm7b11'
isVisible =
'false'>
                           <UML:GraphElement.position>
                             <XMI.field>12.9904</XMI.field>
                             <XMI.field>5.6754</XMI.field>
                           </UML:GraphElement.position>
                           <UML:GraphNode.size>
                             <XMI.field>31.1899</XMI.field>
                             <XMI.field>15.0</XMI.field>
                           </UML:GraphNode.size>
                           <UML:GraphElement.semanticModel>
                             <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7b10' presentation = ''
                               typeInfo = 'Name'/>
                           </UML:GraphElement.semanticModel>
                         </UML:GraphNode>
                         <UML:GraphNode xmi.id = 'I122971bm10f72416043mm7b0f'
isVisible =
'false'>
                           <UML:GraphElement.position>
                             <XMI.field>4.5666</XMI.field>
                             <XMI.field>5.6754</XMI.field>
                           </UML:GraphElement.position>
                           <UML:GraphNode.size>
                             <XMI.field>6.4238</XMI.field>
                             <XMI.field>15.0</XMI.field>
                           </UML:GraphNode.size>
                           <UML:GraphElement.semanticModel>
                             <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7b0e' presentation = ''
                               typeInfo = 'Visibility'/>
                           </UML:GraphElement.semanticModel>
                         </UML:GraphNode>
                         <UML:GraphNode xmi.id = 'I122971bm10f72416043mm7b0d'
isVisible =
'true'>
                           <UML:GraphElement.position>
                             <XMI.field>12.9904</XMI.field>
                             <XMI.field>-22.5</XMI.field>
                           </UML:GraphElement.position>
                           <UML:GraphNode.size>
                             <XMI.field>4.2808</XMI.field>
                             <XMI.field>15.0</XMI.field>
                           </UML:GraphNode.size>
                           <UML:GraphElement.semanticModel>
                             <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7b0c' presentation = ''
                               typeInfo = 'Multiplicity'/>
                           </UML:GraphElement.semanticModel>
                         </UML:GraphNode>
                       </UML:GraphElement.contained>
                     </UML:GraphNode>
                     <UML:GraphNode xmi.id = 'I122971bm10f72416043mm7b0b'
isVisible =
'true'>
                       <UML:GraphElement.position>
                         <XMI.field>530.0</XMI.field>
                         <XMI.field>186.0</XMI.field>
                       </UML:GraphElement.position>
                       <UML:GraphNode.size>
                         <XMI.field>0.0</XMI.field>
                         <XMI.field>0.0</XMI.field>
                       </UML:GraphNode.size>
                       <UML:DiagramElement.property>
                         <UML:Property xmi.id = 'I122971bm10f72416043mm7b09' key
=
'gentleware-custom-width'
                           value = '0.0'/>
                         <UML:Property xmi.id = 'I122971bm10f72416043mm7b08' key
=
'gentleware-custom-height'
                           value = '0.0'/>
                       </UML:DiagramElement.property>
                       <UML:GraphElement.semanticModel>
                         <UML:Uml1SemanticModelBridge xmi.id =
'I122971bm10f72416043mm7b0a' presentation = ''>
                           <UML:Uml1SemanticModelBridge.element>
                             <UML:AssociationEnd xmi.idref =
'I122971bm10f72416043mm7b1d'/>
                           </UML:Uml1SemanticModelBridge.element>
                         </UML:Uml1SemanticModelBridge>
                       </UML:GraphElement.semanticModel>
                       <UML:GraphElement.contained>
                         <UML:GraphNode xmi.id = 'I122971bm10f72416043mm7b07'
isVisible =
'false'>
                           <UML:GraphElement.position>
                             <XMI.field>-44.1803</XMI.field>
                             <XMI.field>-20.6754</XMI.field>
                           </UML:GraphElement.position>
                           <UML:GraphNode.size>
                             <XMI.field>31.1899</XMI.field>
                             <XMI.field>15.0</XMI.field>
                           </UML:GraphNode.size>
                           <UML:GraphElement.semanticModel>
                             <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7b06' presentation = ''
                               typeInfo = 'Name'/>
                           </UML:GraphElement.semanticModel>
                         </UML:GraphNode>
                         <UML:GraphNode xmi.id = 'I122971bm10f72416043mm7b05'
isVisible =
'false'>
                           <UML:GraphElement.position>
                             <XMI.field>-52.6041</XMI.field>
                             <XMI.field>-20.6754</XMI.field>
                           </UML:GraphElement.position>
                           <UML:GraphNode.size>
                             <XMI.field>6.4238</XMI.field>
                             <XMI.field>15.0</XMI.field>
                           </UML:GraphNode.size>
                           <UML:GraphElement.semanticModel>
                             <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7b04' presentation = ''
                               typeInfo = 'Visibility'/>
                           </UML:GraphElement.semanticModel>
                         </UML:GraphNode>
                         <UML:GraphNode xmi.id = 'I122971bm10f72416043mm7b03'
isVisible =
'false'>
                           <UML:GraphElement.position>
                             <XMI.field>-19.1081</XMI.field>
                             <XMI.field>7.5</XMI.field>
                           </UML:GraphElement.position>
                           <UML:GraphNode.size>
                             <XMI.field>6.1177</XMI.field>
                             <XMI.field>15.0</XMI.field>
                           </UML:GraphNode.size>
                           <UML:GraphElement.semanticModel>
                             <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7b02' presentation = ''
                               typeInfo = 'Multiplicity'/>
                           </UML:GraphElement.semanticModel>
                         </UML:GraphNode>
                       </UML:GraphElement.contained>
                     </UML:GraphNode>
                     <UML:GraphNode xmi.id = 'I122971bm10f72416043mm7b01'
isVisible =
'false'>
                       <UML:GraphElement.position>
                         <XMI.field>419.8181</XMI.field>
                         <XMI.field>196.0</XMI.field>
                       </UML:GraphElement.position>
                       <UML:GraphNode.size>
                         <XMI.field>40.3638</XMI.field>
                         <XMI.field>15.0</XMI.field>
                       </UML:GraphNode.size>
                       <UML:GraphElement.semanticModel>
                         <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7b00' presentation = ''
                           typeInfo = 'DirectedName'/>
                       </UML:GraphElement.semanticModel>
                       <UML:GraphElement.contained>
                         <UML:GraphNode xmi.id = 'I122971bm10f72416043mm7aff'
isVisible =
'true'>
                           <UML:GraphElement.position>
                             <XMI.field>0.0</XMI.field>
                             <XMI.field>0.0</XMI.field>
                           </UML:GraphElement.position>
                           <UML:GraphNode.size>
                             <XMI.field>40.3638</XMI.field>
                             <XMI.field>15.0</XMI.field>
                           </UML:GraphNode.size>
                           <UML:GraphElement.semanticModel>
                             <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7afe' presentation = ''
                               typeInfo = 'Name'/>
                           </UML:GraphElement.semanticModel>
                         </UML:GraphNode>
                       </UML:GraphElement.contained>
                     </UML:GraphNode>
                   </UML:GraphElement.contained>
                   <UML:GraphEdge.anchor>
                     <UML:GraphConnector xmi.idref =
'I122971bm10f72416043mm7b19'/>
                     <UML:GraphConnector xmi.idref =
'I122971bm10f72416043mm7b18'/>
                   </UML:GraphEdge.anchor>
                 </UML:GraphEdge>
               </UML:GraphElement.contained>
             </UML:GraphNode>
           </UML:GraphElement.contained>
         </UML:GraphNode>
         <UML:GraphNode xmi.id = 'I122971bm10f72416043mm7e66' isVisible = 'true'>
           <UML:GraphElement.position>
             <XMI.field>-20.0</XMI.field>
             <XMI.field>-81.0</XMI.field>
           </UML:GraphElement.position>
           <UML:GraphNode.size>
             <XMI.field>83.4653</XMI.field>
             <XMI.field>21.0</XMI.field>
           </UML:GraphNode.size>
           <UML:GraphElement.semanticModel>
             <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7e65'
presentation = ''
               typeInfo = 'NameCompartment'/>
           </UML:GraphElement.semanticModel>
           <UML:GraphElement.contained>
             <UML:GraphNode xmi.id = 'I122971bm10f72416043mm7e64' isVisible =
'true'>
               <UML:GraphElement.position>
                 <XMI.field>5.0</XMI.field>
                 <XMI.field>3.0</XMI.field>
               </UML:GraphElement.position>
               <UML:GraphNode.size>
                 <XMI.field>19.5562</XMI.field>
                 <XMI.field>15.0</XMI.field>
               </UML:GraphNode.size>
               <UML:GraphElement.semanticModel>
                 <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7e63' presentation = ''
                   typeInfo = 'DiagramNamePrefix'/>
               </UML:GraphElement.semanticModel>
             </UML:GraphNode>
             <UML:GraphNode xmi.id = 'I122971bm10f72416043mm7e62' isVisible =
'true'>
               <UML:GraphElement.position>
                 <XMI.field>24.5562</XMI.field>
                 <XMI.field>3.0</XMI.field>
               </UML:GraphElement.position>
               <UML:GraphNode.size>
                 <XMI.field>48.9092</XMI.field>
                 <XMI.field>15.0</XMI.field>
               </UML:GraphNode.size>
               <UML:GraphElement.semanticModel>
                 <UML:SimpleSemanticModelElement xmi.id =
'I122971bm10f72416043mm7e61' presentation = ''
                   typeInfo = 'Name'/>
               </UML:GraphElement.semanticModel>
             </UML:GraphNode>
           </UML:GraphElement.contained>
         </UML:GraphNode>
       </UML:GraphElement.contained>
       <UML:Diagram.owner>
         <UML:Uml1SemanticModelBridge xmi.id = 'I122971bm10f72416043mm7e67'
presentation = ''>
           <UML:Uml1SemanticModelBridge.element>
             <UML:Model xmi.idref = 'I122971bm10f72416043mm7e6a'/>
           </UML:Uml1SemanticModelBridge.element>
         </UML:Uml1SemanticModelBridge>
       </UML:Diagram.owner>
     </UML:Diagram>
   </XMI.content>
</XMI>

#501 From: Manuel Lemos <mlemos@...>
Date: Fri Dec 15, 2006 1:48 pm
Subject: Re: Re: Modelling for Metastorage with Poseidon
mallemos
Send Email Send Email
 
Hello,

on 12/15/2006 10:35 AM hofer_juerg said the following:
>  Hello again
>
>>> What do you mean by a lot of numbers?
>>>
> the created component-file, i.e. the output of xmi2ms begins with a
xml-header, the rest
> of the document appear to be just a lot of random numbers.
>
>>> Are you saving Poseidon model in XMI? Are you converting the XMI to
>>> Metastorage component format with xmi2ms?
>
> yes to this
>
>> I never tested with output from Poseidon.  If you can mail me the model
>> as XMI I can have a play and see what's happening.
>>
> yes, will send a zip with Model .zuml as produced with poseidon ce 4.2.1 and
as .xmi and
> result from this

Can you please upload the files here so we all could take a look?

http://tech.groups.yahoo.com/group/metal-dev/files/metastorage/xmi2metastorage/

--

Regards,
Manuel Lemos
info at phpclasses dot org

Free ready to use OOP components written in PHP
http://www.phpclasses.org/

#502 From: Peter Howard <pjh@...>
Date: Sat Dec 16, 2006 1:51 am
Subject: Re: Re: Modelling for Metastorage with Poseidon
pjhacnau
Send Email Send Email
 
On Fri, 2006-12-15 at 13:21 +0000, hofer_juerg wrote:
> ok, tried to send you mail with attachment which didn't work. So here
> the content of the
> xmi-file which I fed the xmi2ms-converter.
> Juerg


OK, I've reproduced your output (just the numbers) from that file.  The
short answer to what's going on: Poseidon's XMI is just different enough
from Umbrello's that my XSLT is not picking up the structure properly.
I'll have to analyse it over the next day or so; but hopefully I can
send Manuel an updated version of xmi2ms which works with your file.


>
--
Peter Howard
pjh@...
Jabber Id: pjhacnau@...
AIM Id: pjhacnau


[Non-text portions of this message have been removed]

#503 From: Peter Howard <pjh@...>
Date: Sat Dec 16, 2006 5:33 am
Subject: Re: Re: Modelling for Metastorage with Poseidon
pjhacnau
Send Email Send Email
 
Juerg,

I've found two problems; one trivial, one less so.

The numbers are coming from the Poseidon diagrams.  The XSLT wasn't
blocking processing of them.  I've sent a one-line fix for that to
Manuel which has just gone into CVS; if you pulled metastorage from cvs
a simple "cvs update" should fetch it; otherwise wait for the next cvs
snapshot to appear on the website.

The other problem relates to how Poseidon specifies XML namespaces in
the .xmi file.  It looks like this:

<XMI xmi.version = '1.2' xmlns:UML = 'org.omg.xmi.namespace.UML'
xmlns:UML2 = 'org.omg.xmi.namespace.UML2' timestamp = 'Fri Dec 15
12:13:05 CET 2006'>

(line 2 of the file).

If you change that to:

<XMI xmi.version = '1.2' xmlns:UML =
'http://schema.omg.org/spec/UML/1.3' xmlns:UML2 =
'http://schema.omg.org/spec/UML/2' timestamp = 'Fri Dec 15 12:13:05 CET
2006'>

then everything processes normally.  I suggest you make that change
manually for now.  Meanwhile I'm off to the libxslt mailing list to see
if I can find out what the real problem (and solution) is.

Finally: thanks for trying this.  It's much more enjoyable working on
this when others are playing with it.  And it will move it from
"preliminary" to "solid" so much quicker :-)



On Sat, 2006-12-16 at 12:51 +1100, Peter Howard wrote:
> On Fri, 2006-12-15 at 13:21 +0000, hofer_juerg wrote:
> > ok, tried to send you mail with attachment which didn't work. So
> here
> > the content of the
> > xmi-file which I fed the xmi2ms-converter.
> > Juerg
>
> OK, I've reproduced your output (just the numbers) from that file. The
> short answer to what's going on: Poseidon's XMI is just different
> enough
> from Umbrello's that my XSLT is not picking up the structure properly.
> I'll have to analyse it over the next day or so; but hopefully I can
> send Manuel an updated version of xmi2ms which works with your file.
>
> >


Peter Howard
pjh@...
Jabber Id: pjhacnau@...
AIM Id: pjhacnau


[Non-text portions of this message have been removed]

#504 From: "hofer_juerg" <hofer_juerg@...>
Date: Sun Dec 17, 2006 7:59 am
Subject: Re: Modelling for Metastorage with Poseidon
hofer_juerg
Send Email Send Email
 
Hi Peter
certainly I'm happy when you are happy with my complaints :-)
So there is annother one here, a minor one though.
I fed the transformed xmi-file to the compiler now and these are my findings:
-it found no name for the whole model. No problem to enter that manually.
-it didn't take over the data types. Might be because Poseidon tries to define
data types with
java standard types and this isn't represented adequately in the xmi-file.
Again, no problem
to enter that manually.
- it generated the code for at least two empty classes which certainly were not
in the original
model. No problem to delete them manually.
-it didn't generate the associations of the original model. I presume this is
not an error but
not intended?

Juerg

#505 From: "Dobes Vandermeer" <dobesv@...>
Date: Sun Dec 17, 2006 8:55 am
Subject: Generated class names from Metastorage
dobes_vander...
Send Email Send Email
 
I've noticed that all my classes are name like <component>class or
<class>class or <component>schemaclass.

Unfortunately, this doesn't comply with my naming scheme - is there an
easy way to change the naming scheme of the generated classes?

Ideally, I'd like to have:

class <component>  { /* component main class (no suffix!) */ }
class <component>Schema { /* installschema class */ }
class <class> { /* class definition (no suffix!) */ }

#506 From: Manuel Lemos <mlemos@...>
Date: Tue Dec 19, 2006 9:15 pm
Subject: Re: Generated class names from Metastorage
mallemos
Send Email Send Email
 
Hello,

on 12/17/2006 06:55 AM Dobes Vandermeer said the following:
> I've noticed that all my classes are name like <component>class or
> <class>class or <component>schemaclass.
>
> Unfortunately, this doesn't comply with my naming scheme - is there an
> easy way to change the naming scheme of the generated classes?
>
> Ideally, I'd like to have:
>
> class <component>  { /* component main class (no suffix!) */ }
> class <component>Schema { /* installschema class */ }
> class <class> { /* class definition (no suffix!) */ }

Yes. Having a configuration file is on my todo list. I will try to fit
it in the next release.

--

Regards,
Manuel Lemos

Metastorage - Data object relational mapping layer generator
http://www.metastorage.net/

PHP Classes - Free ready to use OOP components written in PHP
http://www.phpclasses.org/

#507 From: Peter Howard <pjh@...>
Date: Thu Jan 18, 2007 1:15 am
Subject: Re: Re: Modelling for Metastorage with Poseidon
pjhacnau
Send Email Send Email
 
On Sat, 2006-12-16 at 16:33 +1100, Peter Howard wrote:

> The other problem relates to how Poseidon specifies XML namespaces in
> the .xmi file. It looks like this:
>
> <XMI xmi.version = '1.2' xmlns:UML = 'org.omg.xmi.namespace.UML'
> xmlns:UML2 = 'org.omg.xmi.namespace.UML2' timestamp = 'Fri Dec 15
> 12:13:05 CET 2006'>
>
> (line 2 of the file).
>
> If you change that to:
>
> <XMI xmi.version = '1.2' xmlns:UML =
> 'http://schema.omg.org/spec/UML/1.3' xmlns:UML2 =
> 'http://schema.omg.org/spec/UML/2' timestamp = 'Fri Dec 15 12:13:05
> CET
> 2006'>
>
> then everything processes normally. I suggest you make that change
> manually for now. Meanwhile I'm off to the libxslt mailing list to see
> if I can find out what the real problem (and solution) is.
>

OK, I got a response a few days ago for this from the libxslt mailing
list:

>Peter Howard wrote:

>> <XMI xmi.version = '1.2' xmlns:UML = 'org.omg.xmi.namespace.UML'
>> xmlns:UML2 = 'org.omg.xmi.namespace.UML2' timestamp = 'Fri Dec 15
>> 12:13:05 CET 2006'>
>[...]
>> then the matches work. Is the output from Poseidon legal?  If so, why
>> won't xsltproc match with it's declaration?

>It is my interpretation that the Poseidon output is not legal.
>
>The namespace must be a valid URI [1], which means that it must be
>preceeded by a scheme name followed by a colon, e.g. "http:" or "ftp:".
>In the above case it looks like they are using URNs [2], in which case
>the scheme is "urn:", so the correct namespace for UML should be
>
>   xmlns:UML='urn:org.omg.xmi.namespace.UML'
>
>
>[1] http://www.w3.org/TR/REC-xml-names/#concepts
>[2] http://www.faqs.org/rfcs/rfc2141.html


So Juerg, can you pls report this back to the Poseidon developers as a
bug?

Thanks.

--
Peter Howard <pjh@...>


[Non-text portions of this message have been removed]

#508 From: "hofer_juerg" <hofer_juerg@...>
Date: Wed Jan 24, 2007 11:41 am
Subject: Re: Modelling for Metastorage with Poseidon
hofer_juerg
Send Email Send Email
 
Hi Peter

I forwarded your findings to gentleware (Poseidon) and this is what they answer:

Poseidon uses realization of standard MOF 1.4:
http://www.omg.org/technology/documents/formal/mof.htm
in which the usage of such kind of declarations is common.

As an example please have a look at the MOF 1.4 definition:
http://www.omg.org/docs/formal/04-04-03.xml

Please do not hesitate to contact us on any further questions.

Best regards,
Olga Shulgina
Gentleware AG

c/o info@...

#509 From: "hofer_juerg" <hofer_juerg@...>
Date: Wed Jan 24, 2007 12:05 pm
Subject: Code generated from UML Model
hofer_juerg
Send Email Send Email
 
Hello

did I do something fundamenally wrong so far or am I right in that the XMI to
Metastorage
generator
basically just produces code for each single class, but not the code for
managing
the associations defined in the Model, i.e. 1:n relations between them?

Thanks

Juerg

#510 From: Peter Howard <pjh@...>
Date: Wed Jan 24, 2007 9:33 pm
Subject: Re: Re: Modelling for Metastorage with Poseidon
pjhacnau
Send Email Send Email
 
Thanks Juerg, I'll look into this further.

On Wed, 2007-01-24 at 11:41 +0000, hofer_juerg wrote:
> Hi Peter
>
> I forwarded your findings to gentleware (Poseidon) and this is what
> they answer:
>
> Poseidon uses realization of standard MOF 1.4:
> http://www.omg.org/technology/documents/formal/mof.htm
> in which the usage of such kind of declarations is common.
>
> As an example please have a look at the MOF 1.4 definition:
> http://www.omg.org/docs/formal/04-04-03.xml
>
> Please do not hesitate to contact us on any further questions.
>
> Best regards,
> Olga Shulgina
> Gentleware AG
>
> c/o info@...
>
>
>
>
>


[Non-text portions of this message have been removed]

#511 From: Peter Howard <pjh@...>
Date: Wed Jan 24, 2007 9:31 pm
Subject: Re: Code generated from UML Model
pjhacnau
Send Email Send Email
 
On Wed, 2007-01-24 at 12:05 +0000, hofer_juerg wrote:
> Hello
>
> did I do something fundamenally wrong so far or am I right in that the
> XMI to Metastorage
> generator
> basically just produces code for each single class, but not the code
> for managing
> the associations defined in the Model, i.e. 1:n relations between the
>
You are correct about the 1:n relations not yet being generated.  It
generated single, directional, relations right now.

Has your model changed significantly since December?  If not I'll try to
have a look at it this weekend.

PJH


[Non-text portions of this message have been removed]

#512 From: "mother_taraza" <taraza@...>
Date: Wed Mar 7, 2007 9:00 am
Subject: Text Field Default Value
mother_taraza
Send Email Send Email
 
Hi:

I'm new to MetaL and wish to ask you guys something that has been
puzzling me over the last two days.

I'm using the lastest stable MySQL 5 release (comunity edition) +
Apache (with PHP -also the latest-). I've read the documentation quite
deeply but when trying to create the MetaNews sample database...
install.php warns about not being able to give a text column a default
value. Such thing it explicitly banned in the MySQL docs... so I'm
afraid MySQL 5 it is not compatible with MetaL...
Could this be true?

I'm quite interested in using MetaStorage for my next personal
project(s) so I'll be glad to hear from you ASAP.

Regards.

#513 From: Manuel Lemos <mlemos@...>
Date: Wed Mar 7, 2007 7:39 pm
Subject: Re: Text Field Default Value
mallemos
Send Email Send Email
 
Hello,

on 03/07/2007 06:00 AM mother_taraza said the following:
> Hi:
>
> I'm new to MetaL and wish to ask you guys something that has been
> puzzling me over the last two days.
>
> I'm using the lastest stable MySQL 5 release (comunity edition) +
> Apache (with PHP -also the latest-). I've read the documentation quite
> deeply but when trying to create the MetaNews sample database...
> install.php warns about not being able to give a text column a default
> value. Such thing it explicitly banned in the MySQL docs... so I'm
> afraid MySQL 5 it is not compatible with MetaL...
> Could this be true?
>
> I'm quite interested in using MetaStorage for my next personal
> project(s) so I'll be glad to hear from you ASAP.

If you do not specify a text variable length, it will attempt to create
a table with a TEXT field. TEXT fields are basically character LOBs, so
they may not have default values.

If you specify a variable length, it will create a VARCHAR field that
can have a default value.

--

Regards,
Manuel Lemos

Metastorage - Data object relational mapping layer generator
http://www.metastorage.net/

PHP Classes - Free ready to use OOP components written in PHP
http://www.phpclasses.org/

#514 From: "manfred.schreck" <manfredschreck@...>
Date: Tue Mar 20, 2007 8:32 am
Subject: Custom Identifier - how does it work?
manfred.schreck
Send Email Send Email
 
Hello,

I am using Metabase for a while, and I am happy with it.
Now I am in a situation, that I have to use a custom identifier. The
scenario is that I use Metabase to synchronize data between existing
db/php app and a newly created web application. The existing app
cannot be changed, and a table containing user information has a
login filed as the primary key. An id field cannot be added.

Now my question: How can I get Metabase to work with a field login
insted of id?

Here is my config for that class, that still uses id as the primary
key:
<class>
   <id>login</id>
   <name>z_user</name>
   <variable>
     <name>login</name>
     <length>10</length>
     <type>text</type>
   </variable>
   <variable>
     <name>passwort</name>
     <type>text</type>
     <length>255</length>
   </variable>
   <variable>
     <name>email</name>
     <type>text</type>
     <length>50</length>
     <optional>1</optional>
   </variable>
</class>

Regards,
Manfred Schreck

#515 From: Manuel Lemos <mlemos@...>
Date: Wed Mar 21, 2007 2:23 am
Subject: Re: Custom Identifier - how does it work?
mallemos
Send Email Send Email
 
Hello,

on 03/20/2007 05:32 AM manfred.schreck said the following:
> Hello,
>
> I am using Metabase for a while, and I am happy with it.
> Now I am in a situation, that I have to use a custom identifier. The
> scenario is that I use Metabase to synchronize data between existing
> db/php app and a newly created web application. The existing app
> cannot be changed, and a table containing user information has a
> login filed as the primary key. An id field cannot be added.
>
> Now my question: How can I get Metabase to work with a field login
> insted of id?

I am a bit confused with your references to Metabase.

Do you mean you have an application using Metabase and you want to
integrate with something that uses classes generated by Metastorage?


--

Regards,
Manuel Lemos

Metastorage - Data object relational mapping layer generator
http://www.metastorage.net/

PHP Classes - Free ready to use OOP components written in PHP
http://www.phpclasses.org/

#516 From: "manfred.schreck" <manfredschreck@...>
Date: Wed Mar 21, 2007 8:17 am
Subject: Re: Custom Identifier - how does it work?
manfred.schreck
Send Email Send Email
 
--- In metal-dev@yahoogroups.com, Manuel Lemos <mlemos@...> wrote:
>
> Hello,
>
> on 03/20/2007 05:32 AM manfred.schreck said the following:
> > Hello,
> >
> > I am using Metabase for a while, and I am happy with it.
> > Now I am in a situation, that I have to use a custom identifier.
The
> > scenario is that I use Metabase to synchronize data between
existing
> > db/php app and a newly created web application. The existing app
> > cannot be changed, and a table containing user information has a
> > login filed as the primary key. An id field cannot be added.
> >
> > Now my question: How can I get Metabase to work with a field
login
> > insted of id?
>
> I am a bit confused with your references to Metabase.
>
> Do you mean you have an application using Metabase and you want to
> integrate with something that uses classes generated by
Metastorage?
>
>
> --
>
> Regards,
> Manuel Lemos
>
> Metastorage - Data object relational mapping layer generator
> http://www.metastorage.net/
>
> PHP Classes - Free ready to use OOP components written in PHP
> http://www.phpclasses.org/
>
Hello Manuel,

sorry I meant Metastorage.

cheers,
Manfred

#517 From: Manuel Lemos <mlemos@...>
Date: Thu Mar 22, 2007 12:44 am
Subject: Re: Re: Custom Identifier - how does it work?
mallemos
Send Email Send Email
 
Hello,

on 03/21/2007 05:17 AM manfred.schreck said the following:
> --- In metal-dev@yahoogroups.com, Manuel Lemos <mlemos@...> wrote:
>> Hello,
>>
>> on 03/20/2007 05:32 AM manfred.schreck said the following:
>>> Hello,
>>>
>>> I am using Metabase for a while, and I am happy with it.
>>> Now I am in a situation, that I have to use a custom identifier.
> The
>>> scenario is that I use Metabase to synchronize data between
> existing
>>> db/php app and a newly created web application. The existing app
>>> cannot be changed, and a table containing user information has a
>>> login filed as the primary key. An id field cannot be added.
>>>
>>> Now my question: How can I get Metabase to work with a field
> login
>>> insted of id?
>> I am a bit confused with your references to Metabase.
>>
>> Do you mean you have an application using Metabase and you want to
>> integrate with something that uses classes generated by
> Metastorage?

> sorry I meant Metastorage.

Currently Metastorage does not support defining custom object identifier
(OID) variables. For now, an implicit OID is assigned to automatic
variable id .

However it is already in my todo list to add support custom OID. Not
only you will be specify another variable as OID, but you also be
allowed to specify more than one OID variable to achieve composite
primary keys. Please be patient.

--

Regards,
Manuel Lemos

Metastorage - Data object relational mapping layer generator
http://www.metastorage.net/

PHP Classes - Free ready to use OOP components written in PHP
http://www.phpclasses.org/

Messages 488 - 517 of 555   Oldest  |  < Older  |  Newer >  |  Newest
Add to My Yahoo!      XML What's This?

Copyright © 2010 Yahoo! Inc. All rights reserved.
Privacy Policy - Terms of Service - Guidelines NEW - Help