blob: ba5fbd6de4b8b7af3530bfc65c75315ffbe6453d [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<eqvtr:RelationalTransformation 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" xmlns:eqvtb="http://www.eclipse.org/qvt/1.0/QVTBase" xmlns:eqvtr="http://www.eclipse.org/qvt/1.0/QVTRelation" xmlns:eqvtt="http://www.eclipse.org/qvt/1.0/QVTTemplate" xmlns:ocl.ecore="http://www.eclipse.org/ocl/1.1.0/Ecore" name="umlToRdbms">
<eOperations xsi:type="eqvtb:Function" name="PrimitiveTypeToSqlType">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<eParameters xsi:type="eqvtb:FunctionParameter" name="primitiveType">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</eParameters>
<queryExpression xsi:type="ocl.ecore:IfExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<condition xsi:type="ocl.ecore:OperationCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
<source xsi:type="ocl.ecore:VariableExp" name="primitiveType" referredVariable="//PrimitiveTypeToSqlType/primitiveType">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</source>
<argument xsi:type="ocl.ecore:StringLiteralExp" name="String" stringSymbol="INTEGER">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</argument>
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String_Class/="/>
</condition>
<thenExpression xsi:type="ocl.ecore:StringLiteralExp" name="String" stringSymbol="NUMBER">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</thenExpression>
<elseExpression xsi:type="ocl.ecore:IfExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<condition xsi:type="ocl.ecore:OperationCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
<source xsi:type="ocl.ecore:VariableExp" name="primitiveType" referredVariable="//PrimitiveTypeToSqlType/primitiveType">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</source>
<argument xsi:type="ocl.ecore:StringLiteralExp" name="String" stringSymbol="BOOLEAN">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</argument>
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String_Class/="/>
</condition>
<thenExpression xsi:type="ocl.ecore:StringLiteralExp" name="String" stringSymbol="BOOLEAN">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</thenExpression>
<elseExpression xsi:type="ocl.ecore:StringLiteralExp" name="String" stringSymbol="VARCHAR">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</elseExpression>
</elseExpression>
</queryExpression>
</eOperations>
<eClassifiers xsi:type="ocl.ecore:OrderedSetType" name="OrderedSet(Column)" instanceClassName="java.util.LinkedHashSet">
<elementType xsi:type="ecore:EClass" href="SimpleRdbms.ecore#//Column"/>
</eClassifiers>
<eClassifiers xsi:type="ocl.ecore:OrderedSetType" name="OrderedSet(Key)" instanceClassName="java.util.LinkedHashSet">
<elementType xsi:type="ecore:EClass" href="SimpleRdbms.ecore#//Key"/>
</eClassifiers>
<eClassifiers xsi:type="ocl.ecore:OrderedSetType" name="OrderedSet(Attribute)" instanceClassName="java.util.LinkedHashSet">
<elementType xsi:type="ecore:EClass" href="SimpleUml.ecore#//Attribute"/>
</eClassifiers>
<eClassifiers xsi:type="ocl.ecore:OrderedSetType" name="OrderedSet(Class)" instanceClassName="java.util.LinkedHashSet">
<elementType xsi:type="ecore:EClass" href="SimpleUml.ecore#//Class"/>
</eClassifiers>
<modelParameter name="uml">
<usedPackage href="SimpleUml.ecore#/"/>
</modelParameter>
<modelParameter name="rdbms">
<usedPackage href="SimpleRdbms.ecore#/"/>
</modelParameter>
<rule xsi:type="eqvtr:Relation" name="PackageToSchema" isTopLevel="true">
<domain xsi:type="eqvtr:RelationDomain" name="uml" isCheckable="true" isEnforceable="false" typedModel="//uml" rootVariable="//PackageToSchema/p">
<pattern>
<templateExpression xsi:type="eqvtt:ObjectTemplateExp" name="p" bindsTo="//PackageToSchema/p">
<eType xsi:type="ecore:EClass" href="SimpleUml.ecore#//Package"/>
<part>
<referredProperty xsi:type="ecore:EAttribute" href="SimpleUml.ecore#//UMLModelElement/name"/>
<value xsi:type="ocl.ecore:VariableExp" name="pn" referredVariable="//PackageToSchema/pn">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</value>
</part>
<referredClass href="SimpleUml.ecore#//Package"/>
</templateExpression>
</pattern>
</domain>
<domain xsi:type="eqvtr:RelationDomain" name="rdbms" isCheckable="false" isEnforceable="true" typedModel="//rdbms" rootVariable="//PackageToSchema/s">
<pattern>
<templateExpression xsi:type="eqvtt:ObjectTemplateExp" name="s" bindsTo="//PackageToSchema/s">
<eType xsi:type="ecore:EClass" href="SimpleRdbms.ecore#//Schema"/>
<part>
<referredProperty xsi:type="ecore:EAttribute" href="SimpleRdbms.ecore#//RModelElement/name"/>
<value xsi:type="ocl.ecore:VariableExp" name="pn" referredVariable="//PackageToSchema/pn">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</value>
</part>
<referredClass href="SimpleRdbms.ecore#//Schema"/>
</templateExpression>
</pattern>
</domain>
<variable name="p">
<eType xsi:type="ecore:EClass" href="SimpleUml.ecore#//Package"/>
</variable>
<variable name="s">
<eType xsi:type="ecore:EClass" href="SimpleRdbms.ecore#//Schema"/>
</variable>
<variable name="pn">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</variable>
</rule>
<rule xsi:type="eqvtr:Relation" name="ClassToTable" isTopLevel="true">
<domain xsi:type="eqvtr:RelationDomain" name="uml" isCheckable="true" isEnforceable="false" typedModel="//uml" rootVariable="//ClassToTable/c">
<pattern>
<templateExpression xsi:type="eqvtt:ObjectTemplateExp" name="c" bindsTo="//ClassToTable/c">
<eType xsi:type="ecore:EClass" href="SimpleUml.ecore#//Class"/>
<part>
<referredProperty xsi:type="ecore:EReference" href="SimpleUml.ecore#//PackageElement/namespace"/>
<value xsi:type="eqvtt:ObjectTemplateExp" name="p" bindsTo="//ClassToTable/p">
<eType xsi:type="ecore:EClass" href="SimpleUml.ecore#//Package"/>
<referredClass href="SimpleUml.ecore#//Package"/>
</value>
</part>
<part>
<referredProperty xsi:type="ecore:EAttribute" href="SimpleUml.ecore#//UMLModelElement/kind"/>
<value xsi:type="ocl.ecore:StringLiteralExp" name="String" stringSymbol="Persistent">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</value>
</part>
<part>
<referredProperty xsi:type="ecore:EAttribute" href="SimpleUml.ecore#//UMLModelElement/name"/>
<value xsi:type="ocl.ecore:VariableExp" name="cn" referredVariable="//ClassToTable/cn">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</value>
</part>
<referredClass href="SimpleUml.ecore#//Class"/>
</templateExpression>
</pattern>
</domain>
<domain xsi:type="eqvtr:RelationDomain" name="rdbms" isCheckable="false" isEnforceable="true" typedModel="//rdbms" rootVariable="//ClassToTable/t">
<pattern>
<templateExpression xsi:type="eqvtt:ObjectTemplateExp" name="t" bindsTo="//ClassToTable/t">
<eType xsi:type="ecore:EClass" href="SimpleRdbms.ecore#//Table"/>
<part>
<referredProperty xsi:type="ecore:EReference" href="SimpleRdbms.ecore#//Table/schema"/>
<value xsi:type="eqvtt:ObjectTemplateExp" name="s" bindsTo="//ClassToTable/s">
<eType xsi:type="ecore:EClass" href="SimpleRdbms.ecore#//Schema"/>
<referredClass href="SimpleRdbms.ecore#//Schema"/>
</value>
</part>
<part>
<referredProperty xsi:type="ecore:EAttribute" href="SimpleRdbms.ecore#//RModelElement/name"/>
<value xsi:type="ocl.ecore:VariableExp" name="cn" referredVariable="//ClassToTable/cn">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</value>
</part>
<part>
<referredProperty xsi:type="ecore:EReference" href="SimpleRdbms.ecore#//Table/column"/>
<value xsi:type="eqvtt:ObjectTemplateExp" name="cl" bindsTo="//ClassToTable/cl">
<eType xsi:type="ecore:EClass" href="SimpleRdbms.ecore#//Column"/>
<part>
<referredProperty xsi:type="ecore:EAttribute" href="SimpleRdbms.ecore#//RModelElement/name"/>
<value xsi:type="ocl.ecore:OperationCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<source xsi:type="ocl.ecore:VariableExp" name="cn" referredVariable="//ClassToTable/cn">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</source>
<argument xsi:type="ocl.ecore:StringLiteralExp" name="String" stringSymbol="_tid">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</argument>
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String_Class/concat"/>
</value>
</part>
<part>
<referredProperty xsi:type="ecore:EAttribute" href="SimpleRdbms.ecore#//Column/type"/>
<value xsi:type="ocl.ecore:StringLiteralExp" name="String" stringSymbol="NUMBER">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</value>
</part>
<referredClass href="SimpleRdbms.ecore#//Column"/>
</value>
</part>
<part>
<referredProperty xsi:type="ecore:EReference" href="SimpleRdbms.ecore#//Table/_key"/>
<value xsi:type="eqvtt:ObjectTemplateExp" name="k" bindsTo="//ClassToTable/k">
<eType xsi:type="ecore:EClass" href="SimpleRdbms.ecore#//Key"/>
<part>
<referredProperty xsi:type="ecore:EAttribute" href="SimpleRdbms.ecore#//RModelElement/name"/>
<value xsi:type="ocl.ecore:OperationCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<source xsi:type="ocl.ecore:VariableExp" name="cn" referredVariable="//ClassToTable/cn">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</source>
<argument xsi:type="ocl.ecore:StringLiteralExp" name="String" stringSymbol="_pk">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</argument>
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String_Class/concat"/>
</value>
</part>
<part>
<referredProperty xsi:type="ecore:EReference" href="SimpleRdbms.ecore#//Key/column"/>
<value xsi:type="ocl.ecore:VariableExp" name="cl" referredVariable="//ClassToTable/cl">
<eType xsi:type="ecore:EClass" href="SimpleRdbms.ecore#//Column"/>
</value>
</part>
<referredClass href="SimpleRdbms.ecore#//Key"/>
</value>
</part>
<referredClass href="SimpleRdbms.ecore#//Table"/>
</templateExpression>
</pattern>
</domain>
<variable name="c">
<eType xsi:type="ecore:EClass" href="SimpleUml.ecore#//Class"/>
</variable>
<variable name="t">
<eType xsi:type="ecore:EClass" href="SimpleRdbms.ecore#//Table"/>
</variable>
<variable name="cn">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</variable>
<variable name="prefix">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</variable>
<variable name="p">
<eType xsi:type="ecore:EClass" href="SimpleUml.ecore#//Package"/>
</variable>
<variable name="s">
<eType xsi:type="ecore:EClass" href="SimpleRdbms.ecore#//Schema"/>
</variable>
<variable name="cl">
<eType xsi:type="ecore:EClass" href="SimpleRdbms.ecore#//Column"/>
</variable>
<variable name="k">
<eType xsi:type="ecore:EClass" href="SimpleRdbms.ecore#//Key"/>
</variable>
<when>
<predicate>
<conditionExpression xsi:type="eqvtr:RelationCallExp" referredRelation="//PackageToSchema">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
<argument xsi:type="ocl.ecore:VariableExp" name="p" referredVariable="//ClassToTable/p">
<eType xsi:type="ecore:EClass" href="SimpleUml.ecore#//Package"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="s" referredVariable="//ClassToTable/s">
<eType xsi:type="ecore:EClass" href="SimpleRdbms.ecore#//Schema"/>
</argument>
</conditionExpression>
</predicate>
</when>
<where>
<predicate>
<conditionExpression xsi:type="ocl.ecore:OperationCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
<source xsi:type="ocl.ecore:VariableExp" name="prefix" referredVariable="//ClassToTable/prefix">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</source>
<argument xsi:type="ocl.ecore:StringLiteralExp" name="String" stringSymbol="">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</argument>
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String_Class/="/>
</conditionExpression>
</predicate>
<predicate>
<conditionExpression xsi:type="eqvtr:RelationCallExp" referredRelation="//AttributeToColumn">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
<argument xsi:type="ocl.ecore:VariableExp" name="c" referredVariable="//ClassToTable/c">
<eType xsi:type="ecore:EClass" href="SimpleUml.ecore#//Class"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="t" referredVariable="//ClassToTable/t">
<eType xsi:type="ecore:EClass" href="SimpleRdbms.ecore#//Table"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="prefix" referredVariable="//ClassToTable/prefix">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</argument>
</conditionExpression>
</predicate>
</where>
</rule>
<rule xsi:type="eqvtr:Relation" name="AttributeToColumn" isTopLevel="false">
<domain xsi:type="eqvtr:RelationDomain" name="uml" isCheckable="true" isEnforceable="false" typedModel="//uml" rootVariable="//AttributeToColumn/c">
<pattern>
<templateExpression xsi:type="eqvtt:ObjectTemplateExp" name="c" bindsTo="//AttributeToColumn/c">
<eType xsi:type="ecore:EClass" href="SimpleUml.ecore#//Class"/>
<referredClass href="SimpleUml.ecore#//Class"/>
</templateExpression>
</pattern>
</domain>
<domain xsi:type="eqvtr:RelationDomain" name="rdbms" isCheckable="false" isEnforceable="true" typedModel="//rdbms" rootVariable="//AttributeToColumn/t">
<pattern>
<templateExpression xsi:type="eqvtt:ObjectTemplateExp" name="t" bindsTo="//AttributeToColumn/t">
<eType xsi:type="ecore:EClass" href="SimpleRdbms.ecore#//Table"/>
<referredClass href="SimpleRdbms.ecore#//Table"/>
</templateExpression>
</pattern>
</domain>
<domain xsi:type="eqvtr:RelationDomain" name="prefix" isCheckable="false" isEnforceable="false" rootVariable="//AttributeToColumn/prefix.1"/>
<variable name="c">
<eType xsi:type="ecore:EClass" href="SimpleUml.ecore#//Class"/>
</variable>
<variable name="t">
<eType xsi:type="ecore:EClass" href="SimpleRdbms.ecore#//Table"/>
</variable>
<variable name="prefix">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</variable>
<where>
<predicate>
<conditionExpression xsi:type="eqvtr:RelationCallExp" referredRelation="//PrimitiveAttributeToColumn">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
<argument xsi:type="ocl.ecore:VariableExp" name="c" referredVariable="//AttributeToColumn/c">
<eType xsi:type="ecore:EClass" href="SimpleUml.ecore#//Class"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="t" referredVariable="//AttributeToColumn/t">
<eType xsi:type="ecore:EClass" href="SimpleRdbms.ecore#//Table"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="prefix" referredVariable="//AttributeToColumn/prefix.1">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</argument>
</conditionExpression>
</predicate>
<predicate>
<conditionExpression xsi:type="eqvtr:RelationCallExp" referredRelation="//ComplexAttributeToColumn">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
<argument xsi:type="ocl.ecore:VariableExp" name="c" referredVariable="//AttributeToColumn/c">
<eType xsi:type="ecore:EClass" href="SimpleUml.ecore#//Class"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="t" referredVariable="//AttributeToColumn/t">
<eType xsi:type="ecore:EClass" href="SimpleRdbms.ecore#//Table"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="prefix" referredVariable="//AttributeToColumn/prefix.1">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</argument>
</conditionExpression>
</predicate>
<predicate>
<conditionExpression xsi:type="eqvtr:RelationCallExp" referredRelation="//SuperAttributeToColumn">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
<argument xsi:type="ocl.ecore:VariableExp" name="c" referredVariable="//AttributeToColumn/c">
<eType xsi:type="ecore:EClass" href="SimpleUml.ecore#//Class"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="t" referredVariable="//AttributeToColumn/t">
<eType xsi:type="ecore:EClass" href="SimpleRdbms.ecore#//Table"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="prefix" referredVariable="//AttributeToColumn/prefix.1">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</argument>
</conditionExpression>
</predicate>
</where>
</rule>
<rule xsi:type="eqvtr:Relation" name="PrimitiveAttributeToColumn" isTopLevel="false">
<domain xsi:type="eqvtr:RelationDomain" name="uml" isCheckable="true" isEnforceable="false" typedModel="//uml" rootVariable="//PrimitiveAttributeToColumn/c">
<pattern>
<templateExpression xsi:type="eqvtt:ObjectTemplateExp" name="c" bindsTo="//PrimitiveAttributeToColumn/c">
<eType xsi:type="ecore:EClass" href="SimpleUml.ecore#//Class"/>
<part>
<referredProperty xsi:type="ecore:EReference" href="SimpleUml.ecore#//Class/attribute"/>
<value xsi:type="eqvtt:ObjectTemplateExp" name="a" bindsTo="//PrimitiveAttributeToColumn/a">
<eType xsi:type="ecore:EClass" href="SimpleUml.ecore#//Attribute"/>
<part>
<referredProperty xsi:type="ecore:EAttribute" href="SimpleUml.ecore#//UMLModelElement/name"/>
<value xsi:type="ocl.ecore:VariableExp" name="an" referredVariable="//PrimitiveAttributeToColumn/an">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</value>
</part>
<part>
<referredProperty xsi:type="ecore:EReference" href="SimpleUml.ecore#//Attribute/type"/>
<value xsi:type="eqvtt:ObjectTemplateExp" name="p" bindsTo="//PrimitiveAttributeToColumn/p">
<eType xsi:type="ecore:EClass" href="SimpleUml.ecore#//PrimitiveDataType"/>
<part>
<referredProperty xsi:type="ecore:EAttribute" href="SimpleUml.ecore#//UMLModelElement/name"/>
<value xsi:type="ocl.ecore:VariableExp" name="pn" referredVariable="//PrimitiveAttributeToColumn/pn">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</value>
</part>
<referredClass href="SimpleUml.ecore#//PrimitiveDataType"/>
</value>
</part>
<referredClass href="SimpleUml.ecore#//Attribute"/>
</value>
</part>
<referredClass href="SimpleUml.ecore#//Class"/>
</templateExpression>
</pattern>
</domain>
<domain xsi:type="eqvtr:RelationDomain" name="rdbms" isCheckable="false" isEnforceable="true" typedModel="//rdbms" rootVariable="//PrimitiveAttributeToColumn/t">
<pattern>
<templateExpression xsi:type="eqvtt:ObjectTemplateExp" name="t" bindsTo="//PrimitiveAttributeToColumn/t">
<eType xsi:type="ecore:EClass" href="SimpleRdbms.ecore#//Table"/>
<part>
<referredProperty xsi:type="ecore:EReference" href="SimpleRdbms.ecore#//Table/column"/>
<value xsi:type="eqvtt:ObjectTemplateExp" name="cl" bindsTo="//PrimitiveAttributeToColumn/cl">
<eType xsi:type="ecore:EClass" href="SimpleRdbms.ecore#//Column"/>
<part>
<referredProperty xsi:type="ecore:EAttribute" href="SimpleRdbms.ecore#//RModelElement/name"/>
<value xsi:type="ocl.ecore:VariableExp" name="cn" referredVariable="//PrimitiveAttributeToColumn/cn">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</value>
</part>
<part>
<referredProperty xsi:type="ecore:EAttribute" href="SimpleRdbms.ecore#//Column/type"/>
<value xsi:type="ocl.ecore:VariableExp" name="sqltype" referredVariable="//PrimitiveAttributeToColumn/sqltype">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</value>
</part>
<referredClass href="SimpleRdbms.ecore#//Column"/>
</value>
</part>
<referredClass href="SimpleRdbms.ecore#//Table"/>
</templateExpression>
</pattern>
</domain>
<domain xsi:type="eqvtr:RelationDomain" name="prefix" isCheckable="false" isEnforceable="false" rootVariable="//PrimitiveAttributeToColumn/prefix.1"/>
<variable name="c">
<eType xsi:type="ecore:EClass" href="SimpleUml.ecore#//Class"/>
</variable>
<variable name="t">
<eType xsi:type="ecore:EClass" href="SimpleRdbms.ecore#//Table"/>
</variable>
<variable name="prefix">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</variable>
<variable name="an">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</variable>
<variable name="pn">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</variable>
<variable name="cn">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</variable>
<variable name="sqltype">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</variable>
<variable name="a">
<eType xsi:type="ecore:EClass" href="SimpleUml.ecore#//Attribute"/>
</variable>
<variable name="p">
<eType xsi:type="ecore:EClass" href="SimpleUml.ecore#//PrimitiveDataType"/>
</variable>
<variable name="cl">
<eType xsi:type="ecore:EClass" href="SimpleRdbms.ecore#//Column"/>
</variable>
<where>
<predicate>
<conditionExpression xsi:type="ocl.ecore:OperationCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
<source xsi:type="ocl.ecore:VariableExp" name="cn" referredVariable="//PrimitiveAttributeToColumn/cn">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</source>
<argument xsi:type="ocl.ecore:IfExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<condition xsi:type="ocl.ecore:OperationCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
<source xsi:type="ocl.ecore:VariableExp" name="prefix" referredVariable="//PrimitiveAttributeToColumn/prefix.1">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</source>
<argument xsi:type="ocl.ecore:StringLiteralExp" name="String" stringSymbol="">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</argument>
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String_Class/="/>
</condition>
<thenExpression xsi:type="ocl.ecore:VariableExp" name="an" referredVariable="//PrimitiveAttributeToColumn/an">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</thenExpression>
<elseExpression xsi:type="ocl.ecore:OperationCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<source xsi:type="ocl.ecore:OperationCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<source xsi:type="ocl.ecore:VariableExp" name="prefix" referredVariable="//PrimitiveAttributeToColumn/prefix.1">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</source>
<argument xsi:type="ocl.ecore:StringLiteralExp" name="String" stringSymbol="_">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</argument>
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String_Class/concat"/>
</source>
<argument xsi:type="ocl.ecore:VariableExp" name="an" referredVariable="//PrimitiveAttributeToColumn/an">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</argument>
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String_Class/concat"/>
</elseExpression>
</argument>
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String_Class/="/>
</conditionExpression>
</predicate>
<predicate>
<conditionExpression xsi:type="ocl.ecore:OperationCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
<source xsi:type="ocl.ecore:VariableExp" name="sqltype" referredVariable="//PrimitiveAttributeToColumn/sqltype">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</source>
<argument xsi:type="ocl.ecore:OperationCallExp" name="PrimitiveTypeToSqlType" referredOperation="//PrimitiveTypeToSqlType">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<argument xsi:type="ocl.ecore:VariableExp" name="pn" referredVariable="//PrimitiveAttributeToColumn/pn">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</argument>
</argument>
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String_Class/="/>
</conditionExpression>
</predicate>
</where>
</rule>
<rule xsi:type="eqvtr:Relation" name="ComplexAttributeToColumn" isTopLevel="false">
<domain xsi:type="eqvtr:RelationDomain" name="uml" isCheckable="true" isEnforceable="false" typedModel="//uml" rootVariable="//ComplexAttributeToColumn/c">
<pattern>
<templateExpression xsi:type="eqvtt:ObjectTemplateExp" name="c" bindsTo="//ComplexAttributeToColumn/c">
<eType xsi:type="ecore:EClass" href="SimpleUml.ecore#//Class"/>
<part>
<referredProperty xsi:type="ecore:EReference" href="SimpleUml.ecore#//Class/attribute"/>
<value xsi:type="eqvtt:ObjectTemplateExp" name="a" bindsTo="//ComplexAttributeToColumn/a">
<eType xsi:type="ecore:EClass" href="SimpleUml.ecore#//Attribute"/>
<part>
<referredProperty xsi:type="ecore:EAttribute" href="SimpleUml.ecore#//UMLModelElement/name"/>
<value xsi:type="ocl.ecore:VariableExp" name="an" referredVariable="//ComplexAttributeToColumn/an">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</value>
</part>
<part>
<referredProperty xsi:type="ecore:EReference" href="SimpleUml.ecore#//Attribute/type"/>
<value xsi:type="eqvtt:ObjectTemplateExp" name="tc" bindsTo="//ComplexAttributeToColumn/tc">
<eType xsi:type="ecore:EClass" href="SimpleUml.ecore#//Class"/>
<referredClass href="SimpleUml.ecore#//Class"/>
</value>
</part>
<referredClass href="SimpleUml.ecore#//Attribute"/>
</value>
</part>
<referredClass href="SimpleUml.ecore#//Class"/>
</templateExpression>
</pattern>
</domain>
<domain xsi:type="eqvtr:RelationDomain" name="rdbms" isCheckable="false" isEnforceable="true" typedModel="//rdbms" rootVariable="//ComplexAttributeToColumn/t">
<pattern>
<templateExpression xsi:type="eqvtt:ObjectTemplateExp" name="t" bindsTo="//ComplexAttributeToColumn/t">
<eType xsi:type="ecore:EClass" href="SimpleRdbms.ecore#//Table"/>
<referredClass href="SimpleRdbms.ecore#//Table"/>
</templateExpression>
</pattern>
</domain>
<domain xsi:type="eqvtr:RelationDomain" name="prefix" isCheckable="false" isEnforceable="false" rootVariable="//ComplexAttributeToColumn/prefix.1"/>
<variable name="c">
<eType xsi:type="ecore:EClass" href="SimpleUml.ecore#//Class"/>
</variable>
<variable name="t">
<eType xsi:type="ecore:EClass" href="SimpleRdbms.ecore#//Table"/>
</variable>
<variable name="prefix">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</variable>
<variable name="an">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</variable>
<variable name="newPrefix">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</variable>
<variable name="a">
<eType xsi:type="ecore:EClass" href="SimpleUml.ecore#//Attribute"/>
</variable>
<variable name="tc">
<eType xsi:type="ecore:EClass" href="SimpleUml.ecore#//Class"/>
</variable>
<where>
<predicate>
<conditionExpression xsi:type="ocl.ecore:OperationCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
<source xsi:type="ocl.ecore:VariableExp" name="newPrefix" referredVariable="//ComplexAttributeToColumn/newPrefix">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</source>
<argument xsi:type="ocl.ecore:OperationCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<source xsi:type="ocl.ecore:OperationCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<source xsi:type="ocl.ecore:VariableExp" name="prefix" referredVariable="//ComplexAttributeToColumn/prefix.1">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</source>
<argument xsi:type="ocl.ecore:StringLiteralExp" name="String" stringSymbol="_">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</argument>
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String_Class/concat"/>
</source>
<argument xsi:type="ocl.ecore:VariableExp" name="an" referredVariable="//ComplexAttributeToColumn/an">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</argument>
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String_Class/concat"/>
</argument>
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String_Class/="/>
</conditionExpression>
</predicate>
<predicate>
<conditionExpression xsi:type="eqvtr:RelationCallExp" referredRelation="//AttributeToColumn">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
<argument xsi:type="ocl.ecore:VariableExp" name="tc" referredVariable="//ComplexAttributeToColumn/tc">
<eType xsi:type="ecore:EClass" href="SimpleUml.ecore#//Class"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="t" referredVariable="//ComplexAttributeToColumn/t">
<eType xsi:type="ecore:EClass" href="SimpleRdbms.ecore#//Table"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="newPrefix" referredVariable="//ComplexAttributeToColumn/newPrefix">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</argument>
</conditionExpression>
</predicate>
</where>
</rule>
<rule xsi:type="eqvtr:Relation" name="SuperAttributeToColumn" isTopLevel="false">
<domain xsi:type="eqvtr:RelationDomain" name="uml" isCheckable="true" isEnforceable="false" typedModel="//uml" rootVariable="//SuperAttributeToColumn/c">
<pattern>
<templateExpression xsi:type="eqvtt:ObjectTemplateExp" name="c" bindsTo="//SuperAttributeToColumn/c">
<eType xsi:type="ecore:EClass" href="SimpleUml.ecore#//Class"/>
<part>
<referredProperty xsi:type="ecore:EReference" href="SimpleUml.ecore#//Class/general"/>
<value xsi:type="eqvtt:ObjectTemplateExp" name="sc" bindsTo="//SuperAttributeToColumn/sc">
<eType xsi:type="ecore:EClass" href="SimpleUml.ecore#//Class"/>
<referredClass href="SimpleUml.ecore#//Class"/>
</value>
</part>
<referredClass href="SimpleUml.ecore#//Class"/>
</templateExpression>
</pattern>
</domain>
<domain xsi:type="eqvtr:RelationDomain" name="rdbms" isCheckable="false" isEnforceable="true" typedModel="//rdbms" rootVariable="//SuperAttributeToColumn/t">
<pattern>
<templateExpression xsi:type="eqvtt:ObjectTemplateExp" name="t" bindsTo="//SuperAttributeToColumn/t">
<eType xsi:type="ecore:EClass" href="SimpleRdbms.ecore#//Table"/>
<referredClass href="SimpleRdbms.ecore#//Table"/>
</templateExpression>
</pattern>
</domain>
<domain xsi:type="eqvtr:RelationDomain" name="prefix" isCheckable="false" isEnforceable="false" rootVariable="//SuperAttributeToColumn/prefix.1"/>
<variable name="c">
<eType xsi:type="ecore:EClass" href="SimpleUml.ecore#//Class"/>
</variable>
<variable name="t">
<eType xsi:type="ecore:EClass" href="SimpleRdbms.ecore#//Table"/>
</variable>
<variable name="prefix">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</variable>
<variable name="sc">
<eType xsi:type="ecore:EClass" href="SimpleUml.ecore#//Class"/>
</variable>
<where>
<predicate>
<conditionExpression xsi:type="eqvtr:RelationCallExp" referredRelation="//AttributeToColumn">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
<argument xsi:type="ocl.ecore:VariableExp" name="sc" referredVariable="//SuperAttributeToColumn/sc">
<eType xsi:type="ecore:EClass" href="SimpleUml.ecore#//Class"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="t" referredVariable="//SuperAttributeToColumn/t">
<eType xsi:type="ecore:EClass" href="SimpleRdbms.ecore#//Table"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="prefix" referredVariable="//SuperAttributeToColumn/prefix.1">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</argument>
</conditionExpression>
</predicate>
</where>
</rule>
<rule xsi:type="eqvtr:Relation" name="AssocToFKey" isTopLevel="true">
<domain xsi:type="eqvtr:RelationDomain" name="uml" isCheckable="true" isEnforceable="false" typedModel="//uml" rootVariable="//AssocToFKey/a">
<pattern>
<templateExpression xsi:type="eqvtt:ObjectTemplateExp" name="a" bindsTo="//AssocToFKey/a">
<eType xsi:type="ecore:EClass" href="SimpleUml.ecore#//Association"/>
<part>
<referredProperty xsi:type="ecore:EAttribute" href="SimpleUml.ecore#//UMLModelElement/name"/>
<value xsi:type="ocl.ecore:VariableExp" name="an" referredVariable="//AssocToFKey/an">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</value>
</part>
<part>
<referredProperty xsi:type="ecore:EReference" href="SimpleUml.ecore#//Association/source"/>
<value xsi:type="eqvtt:ObjectTemplateExp" name="sc" bindsTo="//AssocToFKey/sc">
<eType xsi:type="ecore:EClass" href="SimpleUml.ecore#//Class"/>
<part>
<referredProperty xsi:type="ecore:EAttribute" href="SimpleUml.ecore#//UMLModelElement/kind"/>
<value xsi:type="ocl.ecore:StringLiteralExp" name="String" stringSymbol="Persistent">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</value>
</part>
<part>
<referredProperty xsi:type="ecore:EAttribute" href="SimpleUml.ecore#//UMLModelElement/name"/>
<value xsi:type="ocl.ecore:VariableExp" name="scn" referredVariable="//AssocToFKey/scn">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</value>
</part>
<referredClass href="SimpleUml.ecore#//Class"/>
</value>
</part>
<part>
<referredProperty xsi:type="ecore:EReference" href="SimpleUml.ecore#//Association/destination"/>
<value xsi:type="eqvtt:ObjectTemplateExp" name="dc" bindsTo="//AssocToFKey/dc">
<eType xsi:type="ecore:EClass" href="SimpleUml.ecore#//Class"/>
<part>
<referredProperty xsi:type="ecore:EAttribute" href="SimpleUml.ecore#//UMLModelElement/kind"/>
<value xsi:type="ocl.ecore:StringLiteralExp" name="String" stringSymbol="Persistent">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</value>
</part>
<part>
<referredProperty xsi:type="ecore:EAttribute" href="SimpleUml.ecore#//UMLModelElement/name"/>
<value xsi:type="ocl.ecore:VariableExp" name="dcn" referredVariable="//AssocToFKey/dcn">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</value>
</part>
<referredClass href="SimpleUml.ecore#//Class"/>
</value>
</part>
<referredClass href="SimpleUml.ecore#//Association"/>
</templateExpression>
</pattern>
</domain>
<domain xsi:type="eqvtr:RelationDomain" name="rdbms" isCheckable="false" isEnforceable="true" typedModel="//rdbms" rootVariable="//AssocToFKey/fk">
<pattern>
<templateExpression xsi:type="eqvtt:ObjectTemplateExp" name="fk" bindsTo="//AssocToFKey/fk">
<eType xsi:type="ecore:EClass" href="SimpleRdbms.ecore#//ForeignKey"/>
<part>
<referredProperty xsi:type="ecore:EAttribute" href="SimpleRdbms.ecore#//RModelElement/name"/>
<value xsi:type="ocl.ecore:VariableExp" name="fkn" referredVariable="//AssocToFKey/fkn">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</value>
</part>
<part>
<referredProperty xsi:type="ecore:EReference" href="SimpleRdbms.ecore#//ForeignKey/owner"/>
<value xsi:type="ocl.ecore:VariableExp" name="srcTbl" referredVariable="//AssocToFKey/srcTbl">
<eType xsi:type="ecore:EClass" href="SimpleRdbms.ecore#//Table"/>
</value>
</part>
<part>
<referredProperty xsi:type="ecore:EReference" href="SimpleRdbms.ecore#//ForeignKey/column"/>
<value xsi:type="eqvtt:ObjectTemplateExp" name="fc" bindsTo="//AssocToFKey/fc">
<eType xsi:type="ecore:EClass" href="SimpleRdbms.ecore#//Column"/>
<part>
<referredProperty xsi:type="ecore:EAttribute" href="SimpleRdbms.ecore#//RModelElement/name"/>
<value xsi:type="ocl.ecore:VariableExp" name="fcn" referredVariable="//AssocToFKey/fcn">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</value>
</part>
<part>
<referredProperty xsi:type="ecore:EAttribute" href="SimpleRdbms.ecore#//Column/type"/>
<value xsi:type="ocl.ecore:StringLiteralExp" name="String" stringSymbol="NUMBER">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</value>
</part>
<part>
<referredProperty xsi:type="ecore:EReference" href="SimpleRdbms.ecore#//Column/owner"/>
<value xsi:type="ocl.ecore:VariableExp" name="srcTbl" referredVariable="//AssocToFKey/srcTbl">
<eType xsi:type="ecore:EClass" href="SimpleRdbms.ecore#//Table"/>
</value>
</part>
<referredClass href="SimpleRdbms.ecore#//Column"/>
</value>
</part>
<part>
<referredProperty xsi:type="ecore:EReference" href="SimpleRdbms.ecore#//ForeignKey/refersTo"/>
<value xsi:type="ocl.ecore:VariableExp" name="pKey" referredVariable="//AssocToFKey/pKey">
<eType xsi:type="ecore:EClass" href="SimpleRdbms.ecore#//Key"/>
</value>
</part>
<referredClass href="SimpleRdbms.ecore#//ForeignKey"/>
</templateExpression>
</pattern>
</domain>
<variable name="a">
<eType xsi:type="ecore:EClass" href="SimpleUml.ecore#//Association"/>
</variable>
<variable name="fk">
<eType xsi:type="ecore:EClass" href="SimpleRdbms.ecore#//ForeignKey"/>
</variable>
<variable name="srcTbl">
<eType xsi:type="ecore:EClass" href="SimpleRdbms.ecore#//Table"/>
</variable>
<variable name="destTbl">
<eType xsi:type="ecore:EClass" href="SimpleRdbms.ecore#//Table"/>
</variable>
<variable name="pKey">
<eType xsi:type="ecore:EClass" href="SimpleRdbms.ecore#//Key"/>
</variable>
<variable name="an">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</variable>
<variable name="scn">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</variable>
<variable name="dcn">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</variable>
<variable name="fkn">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</variable>
<variable name="fcn">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</variable>
<variable name="sc">
<eType xsi:type="ecore:EClass" href="SimpleUml.ecore#//Class"/>
</variable>
<variable name="dc">
<eType xsi:type="ecore:EClass" href="SimpleUml.ecore#//Class"/>
</variable>
<variable name="fc">
<eType xsi:type="ecore:EClass" href="SimpleRdbms.ecore#//Column"/>
</variable>
<when>
<predicate>
<conditionExpression xsi:type="eqvtr:RelationCallExp" referredRelation="//ClassToTable">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
<argument xsi:type="ocl.ecore:VariableExp" name="sc" referredVariable="//AssocToFKey/sc">
<eType xsi:type="ecore:EClass" href="SimpleUml.ecore#//Class"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="srcTbl" referredVariable="//AssocToFKey/srcTbl">
<eType xsi:type="ecore:EClass" href="SimpleRdbms.ecore#//Table"/>
</argument>
</conditionExpression>
</predicate>
<predicate>
<conditionExpression xsi:type="eqvtr:RelationCallExp" referredRelation="//ClassToTable">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
<argument xsi:type="ocl.ecore:VariableExp" name="dc" referredVariable="//AssocToFKey/dc">
<eType xsi:type="ecore:EClass" href="SimpleUml.ecore#//Class"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="destTbl" referredVariable="//AssocToFKey/destTbl">
<eType xsi:type="ecore:EClass" href="SimpleRdbms.ecore#//Table"/>
</argument>
</conditionExpression>
</predicate>
<predicate>
<conditionExpression xsi:type="ocl.ecore:OperationCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
<source xsi:type="ocl.ecore:VariableExp" name="pKey" referredVariable="//AssocToFKey/pKey">
<eType xsi:type="ecore:EClass" href="SimpleRdbms.ecore#//Key"/>
</source>
<argument xsi:type="ocl.ecore:OperationCallExp">
<eType xsi:type="ecore:EClass" href="SimpleRdbms.ecore#//Key"/>
<source xsi:type="ocl.ecore:PropertyCallExp" eType="//OrderedSet(Key)">
<source xsi:type="ocl.ecore:VariableExp" name="destTbl" referredVariable="//AssocToFKey/destTbl">
<eType xsi:type="ecore:EClass" href="SimpleRdbms.ecore#//Table"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="SimpleRdbms.ecore#//Table/_key"/>
</source>
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OrderedSet(T)_Class/first"/>
</argument>
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/="/>
</conditionExpression>
</predicate>
</when>
<where>
<predicate>
<conditionExpression xsi:type="ocl.ecore:OperationCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
<source xsi:type="ocl.ecore:VariableExp" name="fkn" referredVariable="//AssocToFKey/fkn">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</source>
<argument xsi:type="ocl.ecore:OperationCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<source xsi:type="ocl.ecore:OperationCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<source xsi:type="ocl.ecore:OperationCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<source xsi:type="ocl.ecore:OperationCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<source xsi:type="ocl.ecore:VariableExp" name="scn" referredVariable="//AssocToFKey/scn">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</source>
<argument xsi:type="ocl.ecore:StringLiteralExp" name="String" stringSymbol="_">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</argument>
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String_Class/concat"/>
</source>
<argument xsi:type="ocl.ecore:VariableExp" name="an" referredVariable="//AssocToFKey/an">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</argument>
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String_Class/concat"/>
</source>
<argument xsi:type="ocl.ecore:StringLiteralExp" name="String" stringSymbol="_">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</argument>
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String_Class/concat"/>
</source>
<argument xsi:type="ocl.ecore:VariableExp" name="dcn" referredVariable="//AssocToFKey/dcn">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</argument>
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String_Class/concat"/>
</argument>
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String_Class/="/>
</conditionExpression>
</predicate>
<predicate>
<conditionExpression xsi:type="ocl.ecore:OperationCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
<source xsi:type="ocl.ecore:VariableExp" name="fcn" referredVariable="//AssocToFKey/fcn">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</source>
<argument xsi:type="ocl.ecore:OperationCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<source xsi:type="ocl.ecore:VariableExp" name="fkn" referredVariable="//AssocToFKey/fkn">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</source>
<argument xsi:type="ocl.ecore:StringLiteralExp" name="String" stringSymbol="_tid">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</argument>
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String_Class/concat"/>
</argument>
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String_Class/="/>
</conditionExpression>
</predicate>
</where>
</rule>
<ownedKey>
<identifies href="SimpleRdbms.ecore#//Table"/>
<part xsi:type="ecore:EAttribute" href="SimpleRdbms.ecore#//RModelElement/name"/>
<part xsi:type="ecore:EReference" href="SimpleRdbms.ecore#//Table/schema"/>
</ownedKey>
<ownedKey>
<identifies href="SimpleRdbms.ecore#//Column"/>
<part xsi:type="ecore:EAttribute" href="SimpleRdbms.ecore#//RModelElement/name"/>
<part xsi:type="ecore:EReference" href="SimpleRdbms.ecore#//Column/owner"/>
</ownedKey>
<ownedKey>
<identifies href="SimpleRdbms.ecore#//Key"/>
<part xsi:type="ecore:EAttribute" href="SimpleRdbms.ecore#//RModelElement/name"/>
<part xsi:type="ecore:EReference" href="SimpleRdbms.ecore#//Key/owner"/>
</ownedKey>
</eqvtr:RelationalTransformation>