Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » Web Tools Project (WTP) » EMF, WSDL and SOAP
EMF, WSDL and SOAP [message #212409] Wed, 16 April 2008 04:41 Go to previous message
Hallvard Traetteberg is currently offline Hallvard Traetteberg
Messages: 537
Registered: July 2009
Location: Trondheim, Norway
Senior Member
This is a multi-part message in MIME format.
--------------040402080601090203000403
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

As mentioned in a previous post, I'm working on generating a web services
description language (WSDL) file, from an EMF model of the services. The idea is
to model the domain and related services as a "standard" object-oriented model,
and let EMF and my generator handle all the XML and WSDL encoding stuff. I
thought I'd share the current design with you all, so I can get comments before
I put too much effort into the code. Sorry if this really should be sent to
another newsgroup...

First some words about WSDL (as far as I understand). A WSDL file is typically
composed of several elements:
- An XML schema part, which defines and/or imports type definitions. This
essentially defines how domain objects (types) are described using XML. EMF
already has tools for generating XML schemas for Ecore models (export a genmodel
as XML schema).
- A "port type" part. A port type is similar to an interface, in that it defines
a set of abstract operations. Each operation in turn defines the input and
output by means of the (structure of) the messages that are exchanged. The
messages refer to the types (and elements) defined in the XML schema part
(explicitly defined or imported).
- A binding part, which defines how the operations of a port type actually are
implemented. Implemented means what communication protocol is used (and how) to
exchange the relevant messages for invoking operations.
- A service part, which defines where (server address) a set of bindings are
handled.

My current design is as follows:

The domain model is modeled in the usual way, as an Ecore model with classes,
references and attributes, e.g. in a domain.ecore. The services models is
modeled in its own model, e.g. domain-services, with references to the domain
model, using the Load resource... trick. I've chosen to split the models in this
way for two reasons: 1) These two models should be in their own packages, so
they get separate namespaces. 2) It is easier to invoke the generator (an IFile
action) if the services are in their own file.

The services model has three kinds of classes:
- A "port type" class is a class marked as interface (and abstract). Such a
class contains operations only. A port type class is mapped to a WSDL port type.
- A "binding" class is a class that is a subclass of a single port type class.
Such a class contains the same operations as the port type class, but may omit
the parameters. The operations are (just) used as placeholders for annotations,
which are used to include information of the protocols used by the binding.
- A "service" class is a class that is a subclass of a set of binding classes.
It is also a placeholder for annotations that add protocol information. A
service class is mapped to a WSDL service.

I've attached three files, for illustrating the design:
- phonebook.ecore may be used for generating a corresponding xsd file.
- phonebook-services.ecore is used by my generator for generating the WSDL file.
- phonebook-services.wsdl is the desired/resulting WSDL file. BTW, this file has
a reference to a Ecore.xsd file in the same folder. This file can be found on
the org.eclipse.xsd plugin, I think.

Note that I haven't tried generating SOAP requests based on this design, yet.
I'm currently focusing on making the modeling feel natural. It may be changed if
I find out it is difficult (cumbersome) to generate the corresponding SOAP
requests, using EMF current XML support.

Hallvard

--------------040402080601090203000403
Content-Type: text/xml;
name="phonebook.ecore"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
filename="phonebook.ecore"

<?xml version="1.0" encoding="UTF-8"?>
<ecore:EPackage xmi:version="2.0"
xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="phonebook"
nsURI="http:///phonebook.ecore" nsPrefix="pb">
<eClassifiers xsi:type="ecore:EClass" name="Person" eSuperTypes="#//PhoneNumbers">
<eStructuralFeatures xsi:type="ecore:EReference" name="personData" eType="#//PersonData"
containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Book">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="bid" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
iD="true"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="persons" upperBound="-1"
eType="#//Person" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="PhoneNumber">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="role" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="data" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="PhoneNumbers">
<eStructuralFeatures xsi:type="ecore:EReference" name="phoneNumbers" upperBound="-1"
eType="#//PhoneNumber" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Persons">
<eStructuralFeatures xsi:type="ecore:EReference" name="personData" upperBound="-1"
eType="#//PersonData"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="PersonData">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="pid" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
iD="true"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eClassifiers>
</ecore:EPackage>

--------------040402080601090203000403
Content-Type: text/xml;
name="phonebook-services.wsdl"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
filename="phonebook-services.wsdl"

PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iQVNDSUkiPz4NCjx3c2Rs OmRlZmluaXRp
b25zIHhtaTp2ZXJzaW9uPSIyLjAiIHhtbG5zOnhtaT0iaHR0cDovL3d3dy5v bWcub3JnL1hN
SSIgeG1sbnM6WE1MU2NoZW1hPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hN TFNjaGVtYSIg
eG1sbnM6ZWNvcmU9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIv RWNvcmUiIHht
bG5zOnBiPSJodHRwOi8vL3Bob25lYm9vay5lY29yZSIgeG1sbnM6cGJzPSJo dHRwOi8vL3Bo
b25lYm9vay9zZXJ2aWNlcy5lY29yZSIgeG1sbnM6c29hcD0iaHR0cDovL3Nj aGVtYXMueG1s
c29hcC5vcmcvc29hcC8iIHhtbG5zOndzZGw9Imh0dHA6Ly9zY2hlbWFzLnht bHNvYXAub3Jn
L3dzZGwvIiB0YXJnZXROYW1lc3BhY2U9Imh0dHA6Ly8vcGhvbmVib29rL3Nl cnZpY2VzLmVj
b3JlIj4NCiAgPHdzZGw6dHlwZXM+DQogICAgPFhNTFNjaGVtYTpzY2hlbWEg dGFyZ2V0TmFt
ZXNwYWNlPSJodHRwOi8vL3Bob25lYm9vay9zZXJ2aWNlcy5lY29yZSI+DQog ICAgICA8WE1M
U2NoZW1hOmltcG9ydCBuYW1lc3BhY2U9Imh0dHA6Ly93d3cuZWNsaXBzZS5v cmcvZW1mLzIw
MDIvRWNvcmUiIHNjaGVtYUxvY2F0aW9uPSJFY29yZS54c2QiLz4NCiAgICAg IDxYTUxTY2hl
bWE6aW1wb3J0IG5hbWVzcGFjZT0iaHR0cDovLy9waG9uZWJvb2suZWNvcmUi IHNjaGVtYUxv
Y2F0aW9uPSJwaG9uZWJvb2sueHNkIi8+DQogICAgICA8WE1MU2NoZW1hOmVs ZW1lbnQgbmFt
ZT0ibWFueUVTdHJpbmciPg0KICAgICAgICA8WE1MU2NoZW1hOmNvbXBsZXhU eXBlPg0KICAg
ICAgICAgIDxYTUxTY2hlbWE6c2VxdWVuY2U+DQogICAgICAgICAgICA8WE1M U2NoZW1hOmVs
ZW1lbnQgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVuYm91bmRlZCIgbmFt ZT0iRVN0cmlu
ZyIgdHlwZT0iZWNvcmU6RVN0cmluZyIvPjwvWE1MU2NoZW1hOnNlcXVlbmNl PjwvWE1MU2No
ZW1hOmNvbXBsZXhUeXBlPjwvWE1MU2NoZW1hOmVsZW1lbnQ+PC9YTUxTY2hl bWE6c2NoZW1h
Pg0KICA8L3dzZGw6dHlwZXM+DQogIDx3c2RsOm1lc3NhZ2UgbmFtZT0iYWRk UGVyc29uU29h
cEluIj4NCiAgICA8d3NkbDpwYXJ0IG5hbWU9ImJvb2siIHR5cGU9ImVjb3Jl OkVTdHJpbmci
Lz4NCiAgICA8d3NkbDpwYXJ0IG5hbWU9Im5hbWUiIHR5cGU9ImVjb3JlOkVT dHJpbmciLz4N
CiAgPC93c2RsOm1lc3NhZ2U+DQogIDx3c2RsOm1lc3NhZ2UgbmFtZT0iYWRk UGVyc29uU29h
cE91dCI+DQogICAgPHdzZGw6cGFydCBuYW1lPSJ2YWx1ZSIgdHlwZT0iZWNv cmU6RVN0cmlu
ZyIvPg0KICA8L3dzZGw6bWVzc2FnZT4NCiAgPHdzZGw6bWVzc2FnZSBuYW1l PSJzZXRQaG9u
ZU51bWJlclNvYXBJbiI+DQogICAgPHdzZGw6cGFydCBuYW1lPSJib29rIiB0 eXBlPSJlY29y
ZTpFU3RyaW5nIi8+DQogICAgPHdzZGw6cGFydCBuYW1lPSJwZXJzb24iIHR5 cGU9ImVjb3Jl
OkVTdHJpbmciLz4NCiAgICA8d3NkbDpwYXJ0IG5hbWU9Im51bWJlciIgdHlw ZT0icGI6UGhv
bmVOdW1iZXIiLz4NCiAgPC93c2RsOm1lc3NhZ2U+DQogIDx3c2RsOm1lc3Nh Z2UgbmFtZT0i
c2V0UGhvbmVOdW1iZXJTb2FwT3V0Ij4NCiAgICA8d3NkbDpwYXJ0IG5hbWU9 InZhbHVlIiB0
eXBlPSJlY29yZTpFQm9vbGVhbiIvPg0KICA8L3dzZGw6bWVzc2FnZT4NCiAg PHdzZGw6bWVz
c2FnZSBuYW1lPSJnZXRQaG9uZU51bWJlclNvYXBJbiI+DQogICAgPHdzZGw6 cGFydCBuYW1l
PSJib29rIiB0eXBlPSJlY29yZTpFU3RyaW5nIi8+DQogICAgPHdzZGw6cGFy dCBuYW1lPSJw
ZXJzb24iIHR5cGU9ImVjb3JlOkVTdHJpbmciLz4NCiAgICA8d3NkbDpwYXJ0 IG5hbWU9InJv
bGUiIHR5cGU9ImVjb3JlOkVTdHJpbmciLz4NCiAgPC93c2RsOm1lc3NhZ2U+ DQogIDx3c2Rs
Om1lc3NhZ2UgbmFtZT0iZ2V0UGhvbmVOdW1iZXJTb2FwT3V0Ij4NCiAgICA8 d3NkbDpwYXJ0
IG5hbWU9InZhbHVlIiB0eXBlPSJlY29yZTpFU3RyaW5nIi8+DQogIDwvd3Nk bDptZXNzYWdl
Pg0KICA8d3NkbDptZXNzYWdlIG5hbWU9ImdldEFsbFBob25lTnVtYmVyc1Nv YXBJbiI+DQog
ICAgPHdzZGw6cGFydCBuYW1lPSJib29rIiB0eXBlPSJlY29yZTpFU3RyaW5n Ii8+DQogICAg
PHdzZGw6cGFydCBuYW1lPSJwZXJzb24iIHR5cGU9ImVjb3JlOkVTdHJpbmci Lz4NCiAgICA8
d3NkbDpwYXJ0IG5hbWU9InJvbGUiIHR5cGU9ImVjb3JlOkVTdHJpbmciLz4N CiAgPC93c2Rs
Om1lc3NhZ2U+DQogIDx3c2RsOm1lc3NhZ2UgbmFtZT0iZ2V0QWxsUGhvbmVO dW1iZXJzU29h
cE91dCI+DQogICAgPHdzZGw6cGFydCBuYW1lPSJ2YWx1ZSIgdHlwZT0icGI6 UGhvbmVOdW1i
ZXJzIi8+DQogIDwvd3NkbDptZXNzYWdlPg0KICA8d3NkbDptZXNzYWdlIG5h bWU9ImdldEFs
bFBlcnNvbnNTb2FwSW4iPg0KICAgIDx3c2RsOnBhcnQgbmFtZT0iYm9vayIg dHlwZT0iZWNv
cmU6RVN0cmluZyIvPg0KICA8L3dzZGw6bWVzc2FnZT4NCiAgPHdzZGw6bWVz c2FnZSBuYW1l
PSJnZXRBbGxQZXJzb25zU29hcE91dCI+DQogICAgPHdzZGw6cGFydCBuYW1l PSJ2YWx1ZSIg
dHlwZT0icGI6UGVyc29ucyIvPg0KICA8L3dzZGw6bWVzc2FnZT4NCiAgPHdz ZGw6bWVzc2Fn
ZSBuYW1lPSJmaW5kUGVyc29uc1NvYXBJbiI+DQogICAgPHdzZGw6cGFydCBu YW1lPSJib29r
IiB0eXBlPSJlY29yZTpFU3RyaW5nIi8+DQogICAgPHdzZGw6cGFydCBuYW1l PSJxdWVyaWVz
IiBlbGVtZW50PSJwYnM6bWFueUVTdHJpbmciLz4NCiAgPC93c2RsOm1lc3Nh Z2U+DQogIDx3
c2RsOm1lc3NhZ2UgbmFtZT0iZmluZFBlcnNvbnNTb2FwT3V0Ij4NCiAgICA8 d3NkbDpwYXJ0
IG5hbWU9InZhbHVlIiB0eXBlPSJwYjpQZXJzb25zIi8+DQogIDwvd3NkbDpt ZXNzYWdlPg0K
ICA8d3NkbDpwb3J0VHlwZSBuYW1lPSJJUGhvbmVCb29rIj4NCiAgICA8d3Nk bDpvcGVyYXRp
b24gbmFtZT0iYWRkUGVyc29uIj4NCiAgICAgIDx3c2RsOmlucHV0IG1lc3Nh Z2U9InBiczph
ZGRQZXJzb25Tb2FwSW4iLz4NCiAgICAgIDx3c2RsOm91dHB1dCBtZXNzYWdl PSJwYnM6YWRk
UGVyc29uU29hcE91dCIvPg0KICAgIDwvd3NkbDpvcGVyYXRpb24+DQogICAg PHdzZGw6b3Bl
cmF0aW9uIG5hbWU9InNldFBob25lTnVtYmVyIj4NCiAgICAgIDx3c2RsOmlu cHV0IG1lc3Nh
Z2U9InBiczpzZXRQaG9uZU51bWJlclNvYXBJbiIvPg0KICAgICAgPHdzZGw6 b3V0cHV0IG1l
c3NhZ2U9InBiczpzZXRQaG9uZU51bWJlclNvYXBPdXQiLz4NCiAgICA8L3dz ZGw6b3BlcmF0
aW9uPg0KICAgIDx3c2RsOm9wZXJhdGlvbiBuYW1lPSJnZXRQaG9uZU51bWJl ciI+DQogICAg
ICA8d3NkbDppbnB1dCBtZXNzYWdlPSJwYnM6Z2V0UGhvbmVOdW1iZXJTb2Fw SW4iLz4NCiAg
ICAgIDx3c2RsOm91dHB1dCBtZXNzYWdlPSJwYnM6Z2V0UGhvbmVOdW1iZXJT b2FwT3V0Ii8+
DQogICAgPC93c2RsOm9wZXJhdGlvbj4NCiAgICA8d3NkbDpvcGVyYXRpb24g bmFtZT0iZ2V0
QWxsUGhvbmVOdW1iZXJzIj4NCiAgICAgIDx3c2RsOmlucHV0IG1lc3NhZ2U9 InBiczpnZXRB
bGxQaG9uZU51bWJlcnNTb2FwSW4iLz4NCiAgICAgIDx3c2RsOm91dHB1dCBt ZXNzYWdlPSJw
YnM6Z2V0QWxsUGhvbmVOdW1iZXJzU29hcE91dCIvPg0KICAgIDwvd3NkbDpv cGVyYXRpb24+
DQogICAgPHdzZGw6b3BlcmF0aW9uIG5hbWU9ImdldEFsbFBlcnNvbnMiPg0K ICAgICAgPHdz
ZGw6aW5wdXQgbWVzc2FnZT0icGJzOmdldEFsbFBlcnNvbnNTb2FwSW4iLz4N CiAgICAgIDx3
c2RsOm91dHB1dCBtZXNzYWdlPSJwYnM6Z2V0QWxsUGVyc29uc1NvYXBPdXQi Lz4NCiAgICA8
L3dzZGw6b3BlcmF0aW9uPg0KICAgIDx3c2RsOm9wZXJhdGlvbiBuYW1lPSJm aW5kUGVyc29u
cyI+DQogICAgICA8d3NkbDppbnB1dCBtZXNzYWdlPSJwYnM6ZmluZFBlcnNv bnNTb2FwSW4i
Lz4NCiAgICAgIDx3c2RsOm91dHB1dCBtZXNzYWdlPSJwYnM6ZmluZFBlcnNv bnNTb2FwT3V0
Ii8+DQogICAgPC93c2RsOm9wZXJhdGlvbj4NCiAgPC93c2RsOnBvcnRUeXBl Pg0KICA8d3Nk
bDpiaW5kaW5nIG5hbWU9IlBob25lQm9va0ltcGwiIHR5cGU9InBiczpJUGhv bmVCb29rIj4N
CiAgICA8c29hcDpiaW5kaW5nIHRyYW5zcG9ydD0iaHR0cDovL3NjaGVtYXMu eG1sc29hcC5v
cmcvc29hcC9odHRwIi8+DQogICAgPHdzZGw6b3BlcmF0aW9uIG5hbWU9ImFk ZFBlcnNvbiI+
DQogICAgICA8d3NkbDppbnB1dD4NCiAgICAgICAgPHNvYXA6aGVhZGVyLz4N CiAgICAgICAg
PHNvYXA6Ym9keSB1c2U9ImxpdGVyYWwiLz4NCiAgICAgIDwvd3NkbDppbnB1 dD4NCiAgICAg
IDx3c2RsOm91dHB1dD4NCiAgICAgICAgPHNvYXA6aGVhZGVyLz4NCiAgICAg ICAgPHNvYXA6
Ym9keSB1c2U9ImxpdGVyYWwiLz4NCiAgICAgIDwvd3NkbDpvdXRwdXQ+DQog ICAgPC93c2Rs
Om9wZXJhdGlvbj4NCiAgICA8d3NkbDpvcGVyYXRpb24gbmFtZT0ic2V0UGhv bmVOdW1iZXIi
Pg0KICAgICAgPHdzZGw6aW5wdXQ+DQogICAgICAgIDxzb2FwOmhlYWRlci8+ DQogICAgICAg
IDxzb2FwOmJvZHkgdXNlPSJsaXRlcmFsIi8+DQogICAgICA8L3dzZGw6aW5w dXQ+DQogICAg
ICA8d3NkbDpvdXRwdXQ+DQogICAgICAgIDxzb2FwOmhlYWRlci8+DQogICAg ICAgIDxzb2Fw
OmJvZHkgdXNlPSJsaXRlcmFsIi8+DQogICAgICA8L3dzZGw6b3V0cHV0Pg0K ICAgIDwvd3Nk
bDpvcGVyYXRpb24+DQogICAgPHdzZGw6b3BlcmF0aW9uIG5hbWU9ImdldFBo b25lTnVtYmVy
Ij4NCiAgICAgIDx3c2RsOmlucHV0Pg0KICAgICAgICA8c29hcDpoZWFkZXIv Pg0KICAgICAg
ICA8c29hcDpib2R5IHVzZT0ibGl0ZXJhbCIvPg0KICAgICAgPC93c2RsOmlu cHV0Pg0KICAg
ICAgPHdzZGw6b3V0cHV0Pg0KICAgICAgICA8c29hcDpoZWFkZXIvPg0KICAg ICAgICA8c29h
cDpib2R5IHVzZT0ibGl0ZXJhbCIvPg0KICAgICAgPC93c2RsOm91dHB1dD4N CiAgICA8L3dz
ZGw6b3BlcmF0aW9uPg0KICAgIDx3c2RsOm9wZXJhdGlvbiBuYW1lPSJnZXRB bGxQaG9uZU51
bWJlcnMiPg0KICAgICAgPHdzZGw6aW5wdXQ+DQogICAgICAgIDxzb2FwOmhl YWRlci8+DQog
ICAgICAgIDxzb2FwOmJvZHkgdXNlPSJsaXRlcmFsIi8+DQogICAgICA8L3dz ZGw6aW5wdXQ+
DQogICAgICA8d3NkbDpvdXRwdXQ+DQogICAgICAgIDxzb2FwOmhlYWRlci8+ DQogICAgICAg
IDxzb2FwOmJvZHkgdXNlPSJsaXRlcmFsIi8+DQogICAgICA8L3dzZGw6b3V0 cHV0Pg0KICAg
IDwvd3NkbDpvcGVyYXRpb24+DQogICAgPHdzZGw6b3BlcmF0aW9uIG5hbWU9 ImdldEFsbFBl
cnNvbnMiPg0KICAgICAgPHdzZGw6aW5wdXQ+DQogICAgICAgIDxzb2FwOmhl YWRlci8+DQog
ICAgICAgIDxzb2FwOmJvZHkgdXNlPSJsaXRlcmFsIi8+DQogICAgICA8L3dz ZGw6aW5wdXQ+
DQogICAgICA8d3NkbDpvdXRwdXQ+DQogICAgICAgIDxzb2FwOmhlYWRlci8+ DQogICAgICAg
IDxzb2FwOmJvZHkgdXNlPSJsaXRlcmFsIi8+DQogICAgICA8L3dzZGw6b3V0 cHV0Pg0KICAg
IDwvd3NkbDpvcGVyYXRpb24+DQogICAgPHdzZGw6b3BlcmF0aW9uIG5hbWU9 ImZpbmRQZXJz
b25zIj4NCiAgICAgIDx3c2RsOmlucHV0Pg0KICAgICAgICA8c29hcDpoZWFk ZXIvPg0KICAg
ICAgICA8c29hcDpib2R5IHVzZT0ibGl0ZXJhbCIvPg0KICAgICAgPC93c2Rs OmlucHV0Pg0K
ICAgICAgPHdzZGw6b3V0cHV0Pg0KICAgICAgICA8c29hcDpoZWFkZXIvPg0K ICAgICAgICA8
c29hcDpib2R5IHVzZT0ibGl0ZXJhbCIvPg0KICAgICAgPC93c2RsOm91dHB1 dD4NCiAgICA8
L3dzZGw6b3BlcmF0aW9uPg0KICA8L3dzZGw6YmluZGluZz4NCiAgPHdzZGw6 c2VydmljZSBu
YW1lPSJQaG9uZUJvb2tTZXJ2aWNlIj4NCiAgICA8d3NkbDpwb3J0IG5hbWU9 IklQaG9uZUJv
b2siIGJpbmRpbmc9InBiczpQaG9uZUJvb2tJbXBsIj4NCiAgICAgIDxzb2Fw OmFkZHJlc3Mg
bG9jYXRpb249Imh0dHA6Ly9leGFtcGxlLmNvbS8iLz4NCiAgICA8L3dzZGw6 cG9ydD4NCiAg
PC93c2RsOnNlcnZpY2U+DQo8L3dzZGw6ZGVmaW5pdGlvbnM+
--------------040402080601090203000403
Content-Type: text/xml;
name="phonebook-services.ecore"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
filename="phonebook-services.ecore"

<?xml version="1.0" encoding="UTF-8"?>
<ecore:EPackage xmi:version="2.0"
xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="services"
nsURI="http:///phonebook/services.ecore" nsPrefix="pbs">
<eClassifiers xsi:type="ecore:EClass" name="IPhoneBook" abstract="true" interface="true">
<eOperations name="addPerson" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
<eParameters name="book" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eParameters name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eOperations>
<eOperations name="setPhoneNumber" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eParameters name="book" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eParameters name="person" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eParameters name="number" eType="ecore:EClass phonebook.ecore#//PhoneNumber"/>
</eOperations>
<eOperations name="getPhoneNumber" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
<eParameters name="book" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eParameters name="person" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eParameters name="role" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eOperations>
<eOperations name="getAllPhoneNumbers" eType="ecore:EClass phonebook.ecore#//PhoneNumbers">
<eParameters name="book" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eParameters name="person" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eParameters name="role" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eOperations>
<eOperations name="getAllPersons" eType="ecore:EClass phonebook.ecore#//Persons">
<eParameters name="book" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eOperations>
<eOperations name="findPersons" eType="ecore:EClass phonebook.ecore#//Persons">
<eParameters name="book" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eParameters name="queries" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eOperations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="PhoneBookImpl" eSuperTypes="#//IPhoneBook">
<eAnnotations source="no.hal.soap">
<details key="binding/@transport" value="http://schemas.xmlsoap.org/soap/http"/>
<details key="body/@use" value="literal"/>
</eAnnotations>
<eOperations name="addPerson" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eOperations name="setPhoneNumber" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
<eOperations name="getPhoneNumber" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eOperations name="getAllPhoneNumbers" eType="ecore:EClass phonebook.ecore#//PhoneNumbers"/>
<eOperations name="getAllPersons" eType="ecore:EClass phonebook.ecore#//Persons"/>
<eOperations name="findPersons" eType="ecore:EClass phonebook.ecore#//Persons"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="PhoneBookService" eSuperTypes="#//PhoneBookImpl"/>
</ecore:EPackage>

--------------040402080601090203000403--
 
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic:Issue with publishing to app servers
Next Topic:Re: Which version of JSDoc is supported ? | eclipse.webtools split ?
Goto Forum:
  


Current Time: Wed May 22 00:53:32 EDT 2013

Powered by FUDForum. Page generated in 0.01638 seconds