dobes_vandermeer | 3 Dec 2006 01:43
Picon
Gravatar

XSD schema

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>

__._,_.___
Recent Activity
Visit Your Group
SPONSORED LINKS
Ads on Yahoo!

Learn more now.

Reach customers

searching for you.

Y! Toolbar

Get it Free!

easy 1-click access

to your groups.

Yahoo! Groups

Start a group

in 3 easy steps.

Connect with others.

.

__,_._,___
Manuel Lemos | 12 Dec 2006 20:11
Picon
Favicon

Re: XSD schema

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/

__._,_.___
Recent Activity
Visit Your Group
SPONSORED LINKS
Search Ads

Get new customers.

List your web site

in Yahoo! Search.

Y! Toolbar

Get it Free!

easy 1-click access

to your groups.

Yahoo! Groups

Start a group

in 3 easy steps.

Connect with others.

.

__,_._,___
Dobes Vandermeer | 12 Dec 2006 20:50
Picon
Gravatar

Re: XSD schema

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 <at> acm.org> 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
>
>
>
>

__._,_.___
Recent Activity
Visit Your Group
SPONSORED LINKS
New business?

Get new customers.

List your web site

in Yahoo! Search.

Y! Toolbar

Get it Free!

easy 1-click access

to your groups.

Yahoo! Groups

Start a group

in 3 easy steps.

Connect with others.

.

__,_._,___
hofer_juerg | 14 Dec 2006 09:26
Picon
Favicon

Modelling for Metastorage with Poseidon

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

__._,_.___
Recent Activity
Visit Your Group
SPONSORED LINKS
Give Back

Yahoo! for Good

Get inspired

by a good cause.

Y! Toolbar

Get it Free!

easy 1-click access

to your groups.

Yahoo! Groups

Start a group

in 3 easy steps.

Connect with others.

.

__,_._,___
Manuel Lemos | 14 Dec 2006 22:07
Picon
Favicon

Re: Modelling for Metastorage with Poseidon

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/

__._,_.___
Recent Activity
Visit Your Group
SPONSORED LINKS
Give Back

Yahoo! for Good

Get inspired

by a good cause.

Y! Toolbar

Get it Free!

easy 1-click access

to your groups.

Yahoo! Groups

Start a group

in 3 easy steps.

Connect with others.

.

__,_._,___
Manuel Lemos | 14 Dec 2006 22:09
Picon
Favicon

Re: XSD schema

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/

__._,_.___
Recent Activity
Visit Your Group
SPONSORED LINKS
Give Back

Yahoo! for Good

Get inspired

by a good cause.

Y! Toolbar

Get it Free!

easy 1-click access

to your groups.

Yahoo! Groups

Start a group

in 3 easy steps.

Connect with others.

.

__,_._,___
Peter Howard | 14 Dec 2006 23:39
Picon

Re: Modelling for Metastorage with Poseidon

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]

__._,_.___
Recent Activity
Visit Your Group
SPONSORED LINKS
New web site?

Drive traffic now.

Get your business

on Yahoo! search.

Y! Toolbar

Get it Free!

easy 1-click access

to your groups.

Yahoo! Groups

Start a group

in 3 easy steps.

Connect with others.

.

__,_._,___
hofer_juerg | 15 Dec 2006 13:35
Picon
Favicon

Re: Modelling for Metastorage with Poseidon

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

__._,_.___
Recent Activity
Visit Your Group
SPONSORED LINKS
New business?

Get new customers.

List your web site

in Yahoo! Search.

Y! Toolbar

Get it Free!

easy 1-click access

to your groups.

Yahoo! Groups

Start a group

in 3 easy steps.

Connect with others.

.

__,_._,___
hofer_juerg | 15 Dec 2006 14:21
Picon
Favicon

Re: Modelling for Metastorage with Poseidon

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>

Manuel Lemos | 15 Dec 2006 14:48
Picon
Favicon

Re: Re: Modelling for Metastorage with Poseidon

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/

__._,_.___
Recent Activity
Visit Your Group
SPONSORED LINKS
New web site?

Drive traffic now.

Get your business

on Yahoo! search.

Y! Toolbar

Get it Free!

easy 1-click access

to your groups.

Yahoo! Groups

Start a group

in 3 easy steps.

Connect with others.

.

__,_._,___

Gmane