Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Modeling » M2T (model-to-text transformation) » Xpath and XMI format
Xpath and XMI format [message #26551] Sun, 15 July 2007 16:15 Go to next message
Tarek is currently offline Tarek
Messages: 19
Registered: July 2009
Junior Member
Hi everyone:

I'm very new to the JET2. I am trying to generate Java code from an xmi
format file generated by EMF editor, which I implemented with GMF editor.
some of the file contants look like the following:
<xmachine>
<model-name>left</model-name>
<states>
<name>state1</name>
<inTransitions>#//@xmachine/@transition.1</inTransitions>
<outTransitions>#//@xmachine/@transition.0</outTransitions >
</states>
<states>
<name>state2</name>
<inTransitions>#//@xmachine/@transition.0</inTransitions>
<outTransitions>#//@xmachine/@transition.1</outTransitions >
</states>
<initial-state>#//@xmachine/@states.0</initial-state>
<transition>
<fromState>#//@xmachine/@states.0</fromState>
<functionName>fun1</functionName>
<toState>#//@xmachine/@states.1</toState>
</transition>
<transition>
<fromState>#//@xmachine/@states.1</fromState>
<functionName>fun2</functionName>
<toState>#//@xmachine/@states.0</toState>
</transition>
</xmachine>

the file extenstion is (xml). I have tried the examples in
http://www-128.ibm.com/developerworks/opensource/library/os- ecl-jet/

I got them running. but the problem is I could not genearte simple java
code from the above file.

in the examples there were no elements contents, attributes only were used.

My questions are:

how the content of the element (such as states/name) can be retrived using
Xpath?
Is it possible to get the referenced value (such as #//@xmachine/@states.0
in
<initial-state>#//@xmachine/@states.0</initial-state>) using Xpath?

Finally, could anyone please give a simple (but complete) example on using
JET2 with xmi format.

Regards

Tarek
Re: Xpath and XMI format [message #26629 is a reply to message #26551] Sun, 15 July 2007 16:37 Go to previous messageGo to next message
Tarek is currently offline Tarek
Messages: 19
Registered: July 2009
Junior Member
Hi:

I did forget to tell you that i've used for instance in hello.java.jet:

public class <c:get select="/xmachine/model-name/text()" /> {
public static void main(String[] args) {
System.out.println("<c:get select="/xmachine/model-name/text()" />");
}
}

but I'm getting this :

templates/hello.java.jet(1,14): <c:get
select="/xmachine/model-name/text()">
Error: Error executing tag handler: java.lang.NullPointerException
templates/hello.java.jet(3,23): <c:get
select="/xmachine/model-name/text()">
Error: Error executing tag handler: java.lang.NullPointerException
templates/main.jet(2,1): <ws:file template="templates/hello.java.jet"
path="/HelloJET/src/test.java">
Writing file: /HelloJET/src/test.java
Errors occurred during execution

Cheers

Tarek
Re: Xpath and XMI format [message #26665 is a reply to message #26551] Sun, 15 July 2007 19:48 Go to previous messageGo to next message
Tarek is currently offline Tarek
Messages: 19
Registered: July 2009
Junior Member
Hi:

I also tried the solustion given by Paul in (Re: JET2 - How to get the
content of a text node)
http://dev.eclipse.org/newslists/news.eclipse.modeling.m2t/m sg00063.html

for instance:
public class <c:get select="/xmachine/model-name" /> {
public static void main(String[] args) {
System.out.println("<c:get select="/xmachine/model-name" />");
}
}

but it did not print anything.

Can anyone help me find out my mistake

Cheers

Tarek
Re: Xpath and XMI format [message #26866 is a reply to message #26551] Tue, 17 July 2007 09:23 Go to previous messageGo to next message
Paul Elder is currently offline Paul Elder
Messages: 849
Registered: July 2009
Senior Member
Tarek:

The secret is to understand what JET is dealing with in-memory. It is not
necessarily the XML representation you see on disk. In fact, in the case of
an XMI file created by EMF/GMF, JET is using EMF to load the file, and is
evaluating the XPath expressings against the in memory EObjects.

So, my recommendation in your cases is:
1) forgot about looking an the XMI, instead, think of the EMF Model you
created.
2) think about who your would navigate an EMF Resource to find the object
you'd want. I'd guess you'd write something like:

Resource resource = ...;
XMachine xmachine = (XMachine)resource.getContents().get(0);
String modelName = xmachine.getModelName(); // hard to tell whether
getModelName() is an EList or a String from your example. I've assumed its
an EAttribute.

3) Write your XPath expression using the 'feature' names from you EMF model.
The initial '/' in an expression maps to the Resource, and 'contents' is the
only valid child of '/'. If your accessing an EAttribute, prefix the name
with '@'. I'm guessing at the feature name, but this is what the
corresponding XPath expression might be for the above Java code.

/contents/@model-name

4) XPath on EMF-based models, you can use EClass names instead of feature
names, so the following is equivalent to the above:

/XMachine/@model-name

5) The XPath Engine sees non-containment EReference features, so you can
access these too. The following returns the 'inTransitions' of the state
named 'state1'.

/XMachine/states[@name = 'state1']/inTransitions

Paul

"Tarek" <howaj2002@yahoo.co.uk> wrote in message
news:17d48821d23fbc257f703a22ce4e8cfa$1@www.eclipse.org...
> Hi everyone:
>
> I'm very new to the JET2. I am trying to generate Java code from an xmi
> format file generated by EMF editor, which I implemented with GMF editor.
> some of the file contants look like the following:
> <xmachine>
> <model-name>left</model-name>
> <states>
> <name>state1</name>
> <inTransitions>#//@xmachine/@transition.1</inTransitions>
> <outTransitions>#//@xmachine/@transition.0</outTransitions >
> </states>
> <states>
> <name>state2</name>
> <inTransitions>#//@xmachine/@transition.0</inTransitions>
> <outTransitions>#//@xmachine/@transition.1</outTransitions >
> </states>
> <initial-state>#//@xmachine/@states.0</initial-state>
> <transition>
> <fromState>#//@xmachine/@states.0</fromState>
> <functionName>fun1</functionName>
> <toState>#//@xmachine/@states.1</toState>
> </transition>
> <transition>
> <fromState>#//@xmachine/@states.1</fromState>
> <functionName>fun2</functionName>
> <toState>#//@xmachine/@states.0</toState>
> </transition>
> </xmachine>
>
> the file extenstion is (xml). I have tried the examples in
> http://www-128.ibm.com/developerworks/opensource/library/os- ecl-jet/
>
> I got them running. but the problem is I could not genearte simple java
> code from the above file.
>
> in the examples there were no elements contents, attributes only were
> used.
>
> My questions are:
>
> how the content of the element (such as states/name) can be retrived using
> Xpath?
> Is it possible to get the referenced value (such as #//@xmachine/@states.0
> in
> <initial-state>#//@xmachine/@states.0</initial-state>) using Xpath?
>
> Finally, could anyone please give a simple (but complete) example on using
> JET2 with xmi format.
>
> Regards
>
> Tarek
>
>
>
Re: Xpath and XMI format [message #27106 is a reply to message #26866] Tue, 17 July 2007 15:40 Go to previous messageGo to next message
Tarek is currently offline Tarek
Messages: 19
Registered: July 2009
Junior Member
Dear Paul:

Thank you very much for your help.

First of all, I am not a profissional programmer. I am working on my
university dissertation.so I hope you will be patient with me.

From one of your answers, in the plugin.xml file, I set
modelLaoder:org.eclipse.jet.emf
and modelExtension: xm

my main.jet looks like:

<%@taglib prefix="ws" id="org.eclipse.jet.workspaceTags" %>
<c:iterate select="/xmachine/states" var="currState">
<ws:file template="templates/StateClass.java.jet"
path=" {$org.eclipse.jet.resource.project.name}/gen-src/{$currState /@name}.java "/>
</c:iterate>


and StateClass.java.jet looks like:
public class <c:get select="$currState/@name" />{
private String stateName = "<c:get select="$currState/@name" />";
public String getStateName() {
return "<c:get select="$currState/@name" />";
}
public void shout() {
System.out.println("Hello!!!");
}
}

when I run the project (from the workspace) it prints just:
Successful Execution

and nothings generated.


however, when I changed the input file to:
<?xml version="1.0" encoding="UTF-8"?>
<xmachine:DocumentRoot xmi:version="2.0"
xmlns:xmi="http://www.omg.org/XMI"
xmlns:xmachine="http://www.shef.ac.uk/xmachine">
<xmachine modelName="Bank_Cashier" initialState="//@xmachine/@states.0">
<xmachineInput/>
<states name="serving" inTransitions="//@xmachine/@transition.1
//@xmachine/@transition.2 //@xmachine/@transition.3
//@xmachine/@transition.4 //@xmachine/@transition.6"
outTransitions="//@xmachine/@transition.0 //@xmachine/@transition.2
//@xmachine/@transition.3 //@xmachine/@transition.4
//@xmachine/@transition.5"/>
<states name="Idle" inTransitions="//@xmachine/@transition.0
//@xmachine/@transition.7" outTransitions="//@xmachine/@transition.1
//@xmachine/@transition.8"/>
<states name="answering" inTransitions="//@xmachine/@transition.5
//@xmachine/@transition.8 //@xmachine/@transition.9"
outTransitions="//@xmachine/@transition.6 //@xmachine/@transition.7
//@xmachine/@transition.9"/>
<transition fromState="//@xmachine/@states.0"
functionName="customer_leaves_0" toState="//@xmachine/@states.1"/>
<transition fromState="//@xmachine/@states.1"
functionName="customer_arrives" toState="//@xmachine/@states.0"/>
<transition fromState="//@xmachine/@states.0"
functionName="customer_leaves_n" toState="//@xmachine/@states.0"/>
<transition fromState="//@xmachine/@states.0"
functionName="phone_rings" toState="//@xmachine/@states.0"/>
<transition fromState="//@xmachine/@states.0"
functionName="customer_arrives" toState="//@xmachine/@states.0"/>
<transition fromState="//@xmachine/@states.0"
functionName="answer_phone_n" toState="//@xmachine/@states.2"/>
<transition fromState="//@xmachine/@states.2"
functionName="serve_another" toState="//@xmachine/@states.0"/>
<transition fromState="//@xmachine/@states.2"
functionName="become_idle" toState="//@xmachine/@states.1"/>
<transition fromState="//@xmachine/@states.1"
functionName="answer_phone_0" toState="//@xmachine/@states.2"/>
<transition fromState="//@xmachine/@states.2"
functionName="customer_arrives" toState="//@xmachine/@states.2"/>
</xmachine>
</xmachine:DocumentRoot>

note: I added /DocumentRoot/ to the jet files

the Java code was generated.However, when I use the transormation in
run-time,nothing was generated

Moreover, it seems that it deals with the input file as xml file, because
for instance

private String initialstateName = "<c:get
select="/DocumentRoot/xmachine/@initialState/@name" />";

does not work.



So, could you please point me to the correct way.

Thank you very much in advance.

Tarek
Re: Xpath and XMI format [message #27145 is a reply to message #27106] Wed, 18 July 2007 08:52 Go to previous messageGo to next message
Paul Elder is currently offline Paul Elder
Messages: 849
Registered: July 2009
Senior Member
Tarek:

Your iterate loop is not matching any nodes:

<c:iterate select="/xmachine/states" var="currState">

Since you have an EMF model, the XPath engine having trouble with
'xmachines'. Here is a step-by-step of what is happening.

1) Xpath engine maps the initial '/' to the EMF Resource
2) XPath engine looks for a 'feature' called 'xmachine' on the EMF Resource.
The only feature an EMF Resource has is 'contents', so that doesn't match.
3) XPath engine then tries to look for objects contained by the EMF Resource
whose type is 'xmachine'. Again, I'm guessing that there is no match, since
most EMF types start with a capital. Any of the following will work:

/*/states
/contents/states
/the-correct-type-of-the root object in the resource/states

Paul

"Tarek" <howaj2002@yahoo.co.uk> wrote in message
news:e41ca405ab919d57e019f242b950704e$1@www.eclipse.org...
> Dear Paul:
>
> Thank you very much for your help.
>
> First of all, I am not a profissional programmer. I am working on my
> university dissertation.so I hope you will be patient with me.
>
> From one of your answers, in the plugin.xml file, I set
> modelLaoder:org.eclipse.jet.emf
> and modelExtension: xm
>
> my main.jet looks like:
>
> <%@taglib prefix="ws" id="org.eclipse.jet.workspaceTags" %>
> <c:iterate select="/xmachine/states" var="currState">
> <ws:file template="templates/StateClass.java.jet"
> path=" {$org.eclipse.jet.resource.project.name}/gen-src/{$currState /@name}.java "/>
> </c:iterate>
>
>
> and StateClass.java.jet looks like:
> public class <c:get select="$currState/@name" />{ private String stateName
> = "<c:get select="$currState/@name" />"; public String getStateName() {
> return "<c:get select="$currState/@name" />"; }
> public void shout() {
> System.out.println("Hello!!!"); } }
>
> when I run the project (from the workspace) it prints just:
> Successful Execution
>
> and nothings generated.
>
>
> however, when I changed the input file to:
> <?xml version="1.0" encoding="UTF-8"?>
> <xmachine:DocumentRoot xmi:version="2.0"
> xmlns:xmi="http://www.omg.org/XMI"
> xmlns:xmachine="http://www.shef.ac.uk/xmachine">
> <xmachine modelName="Bank_Cashier" initialState="//@xmachine/@states.0">
> <xmachineInput/>
> <states name="serving" inTransitions="//@xmachine/@transition.1
> //@xmachine/@transition.2 //@xmachine/@transition.3
> //@xmachine/@transition.4 //@xmachine/@transition.6"
> outTransitions="//@xmachine/@transition.0 //@xmachine/@transition.2
> //@xmachine/@transition.3 //@xmachine/@transition.4
> //@xmachine/@transition.5"/>
> <states name="Idle" inTransitions="//@xmachine/@transition.0
> //@xmachine/@transition.7" outTransitions="//@xmachine/@transition.1
> //@xmachine/@transition.8"/>
> <states name="answering" inTransitions="//@xmachine/@transition.5
> //@xmachine/@transition.8 //@xmachine/@transition.9"
> outTransitions="//@xmachine/@transition.6 //@xmachine/@transition.7
> //@xmachine/@transition.9"/>
> <transition fromState="//@xmachine/@states.0"
> functionName="customer_leaves_0" toState="//@xmachine/@states.1"/>
> <transition fromState="//@xmachine/@states.1"
> functionName="customer_arrives" toState="//@xmachine/@states.0"/>
> <transition fromState="//@xmachine/@states.0"
> functionName="customer_leaves_n" toState="//@xmachine/@states.0"/>
> <transition fromState="//@xmachine/@states.0"
> functionName="phone_rings" toState="//@xmachine/@states.0"/>
> <transition fromState="//@xmachine/@states.0"
> functionName="customer_arrives" toState="//@xmachine/@states.0"/>
> <transition fromState="//@xmachine/@states.0"
> functionName="answer_phone_n" toState="//@xmachine/@states.2"/>
> <transition fromState="//@xmachine/@states.2"
> functionName="serve_another" toState="//@xmachine/@states.0"/>
> <transition fromState="//@xmachine/@states.2"
> functionName="become_idle" toState="//@xmachine/@states.1"/>
> <transition fromState="//@xmachine/@states.1"
> functionName="answer_phone_0" toState="//@xmachine/@states.2"/>
> <transition fromState="//@xmachine/@states.2"
> functionName="customer_arrives" toState="//@xmachine/@states.2"/>
> </xmachine>
> </xmachine:DocumentRoot>
>
> note: I added /DocumentRoot/ to the jet files
>
> the Java code was generated.However, when I use the transormation in
> run-time,nothing was generated
>
> Moreover, it seems that it deals with the input file as xml file, because
> for instance
>
> private String initialstateName = "<c:get
> select="/DocumentRoot/xmachine/@initialState/@name" />";
>
> does not work.
>
>
>
> So, could you please point me to the correct way.
>
> Thank you very much in advance.
>
> Tarek
>
>
Re: Xpath and XMI format [message #27299 is a reply to message #27145] Wed, 18 July 2007 12:57 Go to previous messageGo to next message
Tarek is currently offline Tarek
Messages: 19
Registered: July 2009
Junior Member
Dear Paul:

I have tried all ways. however, I could not manage to get it right.

here is my xmachine.ecore (or can I send you my EMF/GMF editor plugins, so
you can see where is my mistake):

<?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="xmachine"
nsURI="http://www.shef.ac.uk/xmachine" nsPrefix="xmachine">
<eClassifiers xsi:type="ecore:EDataType" name="AllowedChar"
instanceClassName="java.lang.String">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="name" value="allowed-char"/>
<details key="baseType"
value="http://www.eclipse.org/emf/2003/XMLType#string"/>
<details key="pattern" value="([a-zA-Z0-9_])"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EDataType" name="AllowedString"
instanceClassName="java.lang.String">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="name" value="allowed-string"/>
<details key="baseType"
value="http://www.eclipse.org/emf/2003/XMLType#string"/>
<details key="pattern" value="([a-zA-Z0-9_])*"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ArithmeticBinaryType">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="name" value="arithmetic-binary_._type"/>
<details key="kind" value="elementOnly"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="arg"
lowerBound="1" eType="#//ListElement"
containment="true" resolveProxies="false">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="kind" value="element"/>
<details key="name" value="arg"/>
<details key="namespace" value="##targetNamespace"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute"
name="arithmeticOperator" unique="false"
lowerBound="1" eType="#//ArithmeticOperator"
defaultValueLiteral="plus" unsettable="true">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="kind" value="element"/>
<details key="name" value="arithmetic-operator"/>
<details key="namespace" value="##targetNamespace"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference"
name="arithmeticExpression" lowerBound="1"
eType="#//ArithmeticExpressionType" containment="true"
resolveProxies="false">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="kind" value="element"/>
<details key="name" value="arithmetic-expression"/>
<details key="namespace" value="##targetNamespace"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ArithmeticExpressionType">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="name" value="arithmetic-expression_._type"/>
<details key="kind" value="elementOnly"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="arg"
eType="#//ListElement"
containment="true" resolveProxies="false">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="kind" value="element"/>
<details key="name" value="arg"/>
<details key="namespace" value="##targetNamespace"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference"
name="arithmeticBinary" eType="#//ArithmeticBinaryType"
containment="true" resolveProxies="false">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="kind" value="element"/>
<details key="name" value="arithmetic-binary"/>
<details key="namespace" value="##targetNamespace"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="ArithmeticOperator">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="name" value="arithmetic-operator"/>
</eAnnotations>
<eLiterals name="plus"/>
<eLiterals name="minus" value="1"/>
<eLiterals name="multiply" value="2"/>
<eLiterals name="divide" value="3"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EDataType" name="ArithmeticOperatorObject"
instanceClassName="org.eclipse.emf.common.util.Enumerator">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="name" value="arithmetic-operator:Object"/>
<details key="baseType" value="arithmetic-operator"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="BagExpressionType">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="name" value="bag-expression_._type"/>
<details key="kind" value="elementOnly"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="bag"
eType="#//BagType"
containment="true" resolveProxies="false">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="kind" value="element"/>
<details key="name" value="bag"/>
<details key="namespace" value="##targetNamespace"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference"
name="bagExpressionUnary" eType="#//BagExpressionUnaryType"
containment="true" resolveProxies="false">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="kind" value="element"/>
<details key="name" value="bag-expression-unary"/>
<details key="namespace" value="##targetNamespace"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference"
name="expressionBinary" eType="#//ExpressionBinaryType"
containment="true" resolveProxies="false">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="kind" value="element"/>
<details key="name" value="expression-binary"/>
<details key="namespace" value="##targetNamespace"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="BagExpressionUnaryType">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="name" value="bag-expression-unary_._type"/>
<details key="kind" value="elementOnly"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute"
name="bagOperatorUnary" unique="false"
lowerBound="1" eType="#//BagOperatorUnary"
defaultValueLiteral="cardinality"
unsettable="true">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="kind" value="element"/>
<details key="name" value="bag-operator-unary"/>
<details key="namespace" value="##targetNamespace"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="bagExpression"
lowerBound="1"
eType="#//BagExpressionType" containment="true"
resolveProxies="false">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="kind" value="element"/>
<details key="name" value="bag-expression"/>
<details key="namespace" value="##targetNamespace"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="BagOfType">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="name" value="bag-of_._type"/>
<details key="kind" value="elementOnly"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="builtinType"
unique="false"
eType="#//BuiltinType" defaultValueLiteral="integer"
unsettable="true">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="kind" value="element"/>
<details key="name" value="builtin-type"/>
<details key="namespace" value="##targetNamespace"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="typeName"
unique="false"
eType="#//AllowedString">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="kind" value="element"/>
<details key="name" value="type-name"/>
<details key="namespace" value="##targetNamespace"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="bag"
eType="#//BagType"
containment="true" resolveProxies="false">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="kind" value="element"/>
<details key="name" value="bag"/>
<details key="namespace" value="##targetNamespace"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EDataType" name="BagOperator"
instanceClassName="org.eclipse.emf.common.util.Enumerator">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="name" value="bag-operator"/>
<details key="memberTypes" value="bag-operator-binary
bag-operator-unary"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="BagOperatorBinary">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="name" value="bag-operator-binary"/>
</eAnnotations>
<eLiterals name="intersection"/>
<eLiterals name="multiplicity" value="1"/>
<eLiterals name="addElement" value="2" literal="add_element"/>
<eLiterals name="deleteElement" value="3" literal="delete_element"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EDataType" name="BagOperatorBinaryObject"
instanceClassName="org.eclipse.emf.common.util.Enumerator">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="name" value="bag-operator-binary:Object"/>
<details key="baseType" value="bag-operator-binary"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="BagOperatorUnary">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="name" value="bag-operator-unary"/>
</eAnnotations>
<eLiterals name="cardinality"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EDataType" name="BagOperatorUnaryObject"
instanceClassName="org.eclipse.emf.common.util.Enumerator">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="name" value="bag-operator-unary:Object"/>
<details key="baseType" value="bag-operator-unary"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="BagType">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="name" value="bag_._type"/>
<details key="kind" value="elementOnly"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="bagElement"
lowerBound="1"
upperBound="-1" eType="#//ListElement" containment="true"
resolveProxies="false">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="kind" value="element"/>
<details key="name" value="bag-element"/>
<details key="namespace" value="##targetNamespace"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="BasicTypesType">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="name" value="basic-types_._type"/>
<details key="kind" value="elementOnly"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="name"
unique="false" lowerBound="1"
upperBound="-1" eType="#//AllowedString">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="kind" value="element"/>
<details key="name" value="name"/>
<details key="namespace" value="##targetNamespace"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="BinaryType">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="name" value="binary_._type"/>
<details key="kind" value="elementOnly"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="arg"
lowerBound="1" eType="#//ListElement"
containment="true" resolveProxies="false">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="kind" value="element"/>
<details key="name" value="arg"/>
<details key="namespace" value="##targetNamespace"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="operator"
unique="false"
lowerBound="1" eType="#//OperatorBinary"
defaultValueLiteral="concat" unsettable="true">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="kind" value="element"/>
<details key="name" value="operator"/>
<details key="namespace" value="##targetNamespace"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference"
name="expressionBinary" lowerBound="1"
eType="#//ExpressionBinaryType" containment="true"
resolveProxies="false">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="kind" value="element"/>
<details key="name" value="expression-binary"/>
<details key="namespace" value="##targetNamespace"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="BodyType">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="name" value="body_._type"/>
<details key="kind" value="elementOnly"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="expression"
lowerBound="1"
eType="#//ExpressionType" containment="true"
resolveProxies="false">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="kind" value="element"/>
<details key="name" value="expression"/>
<details key="namespace" value="##targetNamespace"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute"
name="booleanOperator" unique="false"
lowerBound="1" eType="#//BooleanOperator"
defaultValueLiteral="&amp;&amp;"
unsettable="true">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="kind" value="element"/>
<details key="name" value="boolean-operator"/>
<details key="namespace" value="##targetNamespace"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="where"
lowerBound="1" eType="#//WhereType"
containment="true" resolveProxies="false">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="kind" value="element"/>
<details key="name" value="where"/>
<details key="namespace" value="##targetNamespace"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EDataType" name="Boolean"
instanceClassName="boolean">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="name" value="boolean"/>
<details key="baseType"
value="http://www.eclipse.org/emf/2003/XMLType#boolean"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass"
name="BooleanCollectionExpressionBinaryType">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="name"
value="boolean-collection-expression-binary_._type"/>
<details key="kind" value="elementOnly"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference"
name="collectionElement" lowerBound="1"
eType="#//ListElement" containment="true" resolveProxies="false">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="kind" value="element"/>
<details key="name" value="collection-element"/>
<details key="namespace" value="##targetNamespace"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute"
name="booleanCollectionOperatorBinary"
unique="false" lowerBound="1"
eType="#//BooleanCollectionOperatorBinary" defaultValueLiteral="union"
unsettable="true">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="kind" value="element"/>
<details key="name" value="boolean-collection-operator-binary"/>
<details key="namespace" value="##targetNamespace"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="collection"
lowerBound="1"
eType="#//CollectionType" containment="true"
resolveProxies="false">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="kind" value="element"/>
<details key="name" value="collection"/>
<details key="namespace" value="##targetNamespace"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass"
name="BooleanCollectionExpressionUnaryType">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="name"
value="boolean-collection-expression-unary_._type"/>
<details key="kind" value="elementOnly"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute"
name="booleanCollectionOperatorUnary"
unique="false" lowerBound="1"
eType="#//BooleanCollectionOperatorUnary" defaultValueLiteral="is_empty"
unsettable="true">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="kind" value="element"/>
<details key="name" value="boolean-collection-operator-unary"/>
<details key="namespace" value="##targetNamespace"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="collection"
lowerBound="1"
eType="#//CollectionType" containment="true"
resolveProxies="false">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="kind" value="element"/>
<details key="name" value="collection"/>
<details key="namespace" value="##targetNamespace"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum"
name="BooleanCollectionOperatorBinary">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="name" value="boolean-collection-operator-binary"/>
</eAnnotations>
<eLiterals name="union"/>
<eLiterals name="belongs" value="1"/>
<eLiterals name="notBelongs" value="2" literal="not_belongs"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EDataType"
name="BooleanCollectionOperatorBinaryObject"
instanceClassName="org.eclipse.emf.common.util.Enumerator">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="name"
value="boolean-collection-operator-binary:Object"/>
<details key="baseType" value="boolean-collection-operator-binary"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum"
name="BooleanCollectionOperatorUnary">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="name" value="boolean-collection-operator-unary"/>
</eAnnotations>
<eLiterals name="isEmpty" literal="is_empty"/>
<eLiterals name="notEmpty" value="1" literal="not_empty"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EDataType"
name="BooleanCollectionOperatorUnaryObject"
instanceClassName="org.eclipse.emf.common.util.Enumerator">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="name"
value="boolean-collection-operator-unary:Object"/>
<details key="baseType" value="boolean-collection-operator-unary"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="BooleanComparator">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="name" value="boolean-comparator"/>
</eAnnotations>
<eLiterals name="gt"/>
<eLiterals name="lt" value="1"/>
<eLiterals name="gtequal" value="2"/>
<eLiterals name="ltequal" value="3"/>
<eLiterals name="equals" value="4"/>
<eLiterals name="notEqual" value="5" literal="not_equal"/>
<eLiterals name="belongs" value="6"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EDataType" name="BooleanComparatorObject"
instanceClassName="org.eclipse.emf.common.util.Enumerator">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="name" value="boolean-comparator:Object"/>
<details key="baseType" value="boolean-comparator"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass"
name="BooleanExpressionComparisonType">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="name" value="boolean-expression-comparison_._type"/>
<details key="kind" value="elementOnly"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="identifier"
lowerBound="1"
eType="#//IdentifierType" containment="true"
resolveProxies="false">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="kind" value="element"/>
<details key="name" value="identifier"/>
<details key="namespace" value="##targetNamespace"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute"
name="booleanComparator" unique="false"
lowerBound="1" eType="#//BooleanComparator"
defaultValueLiteral="gt" unsettable="true">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="kind" value="element"/>
<details key="name" value="boolean-comparator"/>
<details key="namespace" value="##targetNamespace"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="identifier1"
lowerBound="1"
eType="#//IdentifierType" containment="true"
resolveProxies="false">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="kind" value="element"/>
<details key="name" value="identifier"/>
<details key="namespace" value="##targetNamespace"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="BooleanExpressionType">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="name" value="boolean-expression_._type"/>
<details key="kind" value="elementOnly"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="term"
eType="#//TermType"
containment="true" resolveProxies="false">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="kind" value="element"/>
<details key="name" value="term"/>
<details key="namespace" value="##targetNamespace"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference"
name="booleanCollectionExpressionBinary"
eType="#//BooleanCollectionExpressionBinaryType"
containment="true" resolveProxies="false">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="kind" value="element"/>
<details key="name" value="boolean-collection-expression-binary"/>
<details key="namespace" value="##targetNamespace"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference"
name="booleanCollectionExpressionUnary"
eType="#//BooleanCollectionExpressionUnaryType" containment="true"
resolveProxies="false">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="kind" value="element"/>
<details key="name" value="boolean-collection-expression-unary"/>
<details key="namespace" value="##targetNamespace"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference"
name="booleanExpressionComparison"
eType="#//BooleanExpressionComparisonType" containment="true"
resolveProxies="false">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="kind" value="element"/>
<details key="name" value="boolean-expression-comparison"/>
<details key="namespace" value="##targetNamespace"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="BooleanExpressionUnaryType">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="name" value="boolean-expression-unary_._type"/>
<details key="kind" value="elementOnly"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="identifier"
lowerBound="1"
eType="#//IdentifierType" containment="true"
resolveProxies="false">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="kind" value="element"/>
<details key="name" value="identifier"/>
<details key="namespace" value="##targetNamespace"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EDataType" name="BooleanObject"
instanceClassName="java.lang.Boolean">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="name" value="boolean:Object"/>
<details key="baseType" value="boolean"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="BooleanOperator">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="name" value="boolean-operator"/>
</eAnnotations>
<eLiterals name="_" literal="&amp;&amp;"/>
<eLiterals name="_1" value="1" literal="||"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EDataType" name="BooleanOperatorObject"
instanceClassName="org.eclipse.emf.common.util.Enumerator">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="name" value="boolean-operator:Object"/>
<details key="baseType" value="boolean-operator"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="BuiltinType">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="name" value="builtin-type"/>
</eAnnotations>
<eLiterals name="integer"/>
<eLiterals name="natural0" value="1"/>
<eLiterals name="natural" value="2"/>
<eLiterals name="real" value="3"/>
<eLiterals name="char" value="4"/>
<eLiterals name="boolean" value="5"/>
<eLiterals name="true" value="6"/>
<eLiterals name="false" value="7"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="BuiltinType1">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="name" value="builtin_._type"/>
<details key="kind" value="elementOnly"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="integer"
unique="false"
eType="#//Integer">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="kind" value="element"/>
<details key="name" value="integer"/>
<details key="namespace" value="##targetNamespace"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="natural0"
unique="false"
eType="#//Natural0">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="kind" value="element"/>
<details key="name" value="natural0"/>
<details key="namespace" value="##targetNamespace"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="natural"
unique="false"
eType="#//Natural">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="kind" value="element"/>
<details key="name" value="natural"/>
<details key="namespace" value="##targetNamespace"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="real"
unique="false" eType="#//Real">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="kind" value="element"/>
<details key="name" value="real"/>
<details key="namespace" value="##targetNamespace"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="boolean"
unique="false"
eType="#//Boolean" unsettable="true">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="kind" value="element"/>
<details key="name" value="boolean"/>
<details key="namespace" value="##targetNamespace"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="true"
unique="false" eType="#//True">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="kind" value="element"/>
<details key="name" value="true"/>
<details key="namespace" value="##targetNamespace"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="false"
unique="false" eType="#//False">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="kind" value="element"/>
<details key="name" value="false"/>
<details key="namespace" value="##targetNamespace"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="char"
unique="false" eType="#//Char">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="kind" value="element"/>
<details key="name" value="char"/>
<details key="namespace" value="##targetNamespace"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EDataType" name="BuiltinTypeObject"
instanceClassName="org.eclipse.emf.common.util.Enumerator">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="name" value="builtin-type:Object"/>
<details key="baseType" value="builtin-type"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EDataType" name="Char"
instanceClassName="java.lang.String">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="name" value="char"/>
<details key="baseType"
value="http://www.eclipse.org/emf/2003/XMLType#string"/>
<details key="length" value="1"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="CollectionType">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="name" value="collection_._type"/>
<details key="kind" value="elementOnly"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="sequence"
eType="#//SequenceType"
containment="true" resolveProxies="false">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="kind" value="element"/>
<details key="name" value="sequence"/>
<details key="namespace" value="##targetNamespace"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="set"
eType="#//Set" containment="true"
resolveProxies="false">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="kind" value="element"/>
<details key="name" value="set"/>
<details key="namespace" value="##targetNamespace"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="bag"
eType="#//BagType"
containment="true" resolveProxies="false">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="kind" value="element"/>
<details key="name" value="bag"/>
<details key="namespace" value="##targetNamespace"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="variable"
unique="false"
eType="#//AllowedString">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="kind" value="element"/>
<details key="name" value="variable"/>
<details key="namespace" value="##targetNamespace"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="type"
eType="#//TypeType"
containment="true" resolveProxies="false">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="kind" value="element"/>
<details key="name" value="type"/>
<details key="namespace" value="##targetNamespace"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="basicTypes"
eType="#//BasicTypesType"
containment="true" resolveProxies="false">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="kind" value="element"/>
<details key="name" value="basic-types"/>
<details key="namespace" value="##targetNamespace"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="CompoundExpressionType">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="name" value="compound-expression_._type"/>
<details key="kind" value="elementOnly"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference"
name="booleanExpression" lowerBound="1"
eType="#//BooleanExpressionType" containment="true"
resolveProxies="false">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="kind" value="element"/>
<details key="name" value="boolean-expression"/>
<details key="namespace" value="##targetNamespace"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute"
name="booleanOperator" unique="false"
lowerBound="1" eType="#//BooleanOperator"
defaultValueLiteral="&amp;&amp;"
unsettable="true">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="kind" value="element"/>
<details key="name" value="boolean-operator"/>
<details key="namespace" value="##targetNamespace"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="condition"
lowerBound="1"
eType="#//ConditionType" containment="true" resolveProxies="false">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="kind" value="element"/>
<details key="name" value="condition"/>
<details key="namespace" value="##targetNamespace"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ConditionType">
<eAnnotations
source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="name" value="condition_._type"/>
<details key="kind" value="elementOnly"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference"
name="booleanExpression" eType="#//BooleanExpressionType"
containment="true" resolveProxies="false">
<eAnnotations
source="

Report message to a moderator

Re: Xpath and XMI format [message #27333 is a reply to message #27299] Thu, 19 July 2007 09:27 Go to previous messageGo to next message
Paul Elder is currently offline Paul Elder
Messages: 849
Registered: July 2009
Senior Member
Tarek:

Can you send a copy of your actual input model, too? Are you using a
specific tool to create it?

One thing I notice about your the attached .ecore model is that there is not
type XMachine - it is XMachineType, but if you've tried /*/states, that
should overcome even that.

Paul
Re: Xpath and XMI format [message #27363 is a reply to message #27333] Thu, 19 July 2007 11:55 Go to previous message
Tarek is currently offline Tarek
Messages: 19
Registered: July 2009
Junior Member
Dear Paul:

Thank you very much for giving me some of your time.

Could you please give me your full email, so I can send my plugins with
complete input file.

I've used Eclipse 3.2.2 with EMF, GMF(which requires GEF) (I've used
download manger to download all the required pulgins )and I used XML
schema to produce my EMF model (I will send it too with the plugins).

Regarding the XmahineType, I have used it too, but no results.

I am looking forward to your reply.

Best regards

Tarek
Previous Topic:Xpath node
Next Topic:How to access the package and class name from the template?
Goto Forum:
  


Current Time: Sat Apr 19 06:11:46 EDT 2014

Powered by FUDForum. Page generated in 0.02897 seconds