relational
Table
columns
primaryKey
foreignKeys
schema
system
Column
table
keys
type
nullable
length
scale
precision
Schema
tables
PrimaryKey
table
foreignKeys
ForeignKey
table
primaryKey
RelationalEntity
name
Key
columns
SqlDataType
VARCHAR
VARCHAR
CHAR
CHAR
INTEGER
INTEGER
DATE
DATE
View
<?xml version="1.0" encoding="ASCII"?>
<!--
  JBoss, Home of Professional Open Source.

  See the LEGAL.txt file distributed with this work for information regarding copyright ownership and licensing.

  See the AUTHORS.txt file distributed with this work for a full listing of individual contributors.
-->
<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="relational"
    nsURI="http://www.metamatrix.com/metamodels/Relational" nsPrefix="relational">
  <eClassifiers xsi:type="ecore:EClass" name="Table" eSuperTypes="#//RelationalEntity">
    <eReferences name="columns" eType="#//Column" upperBound="-1" containment="true"
        eOpposite="#//Column/table"/>
    <eReferences name="primaryKey" eType="#//PrimaryKey" containment="true" eOpposite="#//PrimaryKey/table"/>
    <eReferences name="foreignKeys" eType="#//ForeignKey" upperBound="-1" containment="true"
        eOpposite="#//ForeignKey/table"/>
    <eReferences name="schema" eType="#//Schema" transient="true" eOpposite="#//Schema/tables"/>
    <eAttributes name="system" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Column" eSuperTypes="#//RelationalEntity">
    <eReferences name="table" eType="#//Table" transient="true" eOpposite="#//Table/columns"/>
    <eReferences name="keys" eType="#//Key" upperBound="-1" eOpposite="#//Key/columns"/>
    <eAttributes name="type" eType="#//SqlDataType"/>
    <eAttributes name="nullable" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
    <eAttributes name="length" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
    <eAttributes name="scale" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
    <eAttributes name="precision" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Schema" eSuperTypes="#//RelationalEntity">
    <eReferences name="tables" eType="#//Table" upperBound="-1" containment="true"
        eOpposite="#//Table/schema"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="PrimaryKey" eSuperTypes="#//Key">
    <eReferences name="table" eType="#//Table" transient="true" eOpposite="#//Table/primaryKey"/>
    <eReferences name="foreignKeys" eType="#//ForeignKey" upperBound="-1" eOpposite="#//ForeignKey/primaryKey"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="ForeignKey" eSuperTypes="#//Key">
    <eReferences name="table" eType="#//Table" transient="true" eOpposite="#//Table/foreignKeys"/>
    <eReferences name="primaryKey" eType="#//PrimaryKey" eOpposite="#//PrimaryKey/foreignKeys"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="RelationalEntity" abstract="true">
    <eAttributes name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Key" abstract="true" eSuperTypes="#//RelationalEntity">
    <eReferences name="columns" eType="#//Column" upperBound="-1" eOpposite="#//Column/keys"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EEnum" name="SqlDataType">
    <eLiterals name="VARCHAR"/>
    <eLiterals name="CHAR" value="1"/>
    <eLiterals name="INTEGER" value="2"/>
    <eLiterals name="DATE" value="3"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="View" eSuperTypes="#//Table"/>
</ecore:EPackage>

{"directed":true,"nodes":[{"nsPrefix":"relational","nsURI":"http://www.metamatrix.com/metamodels/Relational","name":"relational","id":0,"eClass":"EPackage"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Table","instanceClass":null,"abstract":false,"id":1,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Column","instanceClass":null,"abstract":false,"id":2,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Schema","instanceClass":null,"abstract":false,"id":3,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"PrimaryKey","instanceClass":null,"abstract":false,"id":4,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"ForeignKey","instanceClass":null,"abstract":false,"id":5,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"RelationalEntity","instanceClass":null,"abstract":true,"id":6,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Key","instanceClass":null,"abstract":true,"id":7,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"instanceClassName":null,"name":"SqlDataType","instanceClass":null,"id":8,"serializable":true,"eClass":"EEnum"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"View","instanceClass":null,"abstract":false,"id":9,"interface":false,"eClass":"EClass"},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"columns","changeable":true,"resolveProxies":true,"lowerBound":0,"id":10,"derived":false},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"primaryKey","changeable":true,"resolveProxies":true,"lowerBound":0,"id":11,"derived":false},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"foreignKeys","changeable":true,"resolveProxies":true,"lowerBound":0,"id":12,"derived":false},{"container":true,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":false,"unsettable":false,"transient":true,"unique":true,"name":"schema","changeable":true,"resolveProxies":true,"lowerBound":0,"id":13,"derived":false},{"ordered":true,"upperBound":1,"defaultValue":false,"volatile":false,"many":false,"required":false,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"system","changeable":true,"lowerBound":0,"iD":false,"id":14,"derived":false},{"id":15,"eClass":"EGenericType"},{"id":16,"eClass":"EGenericType"},{"container":true,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":false,"unsettable":false,"transient":true,"unique":true,"name":"table","changeable":true,"resolveProxies":true,"lowerBound":0,"id":17,"derived":false},{"id":18,"eClass":"EGenericType"},{"container":true,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":false,"unsettable":false,"transient":true,"unique":true,"name":"table","changeable":true,"resolveProxies":true,"lowerBound":0,"id":19,"derived":false},{"id":20,"eClass":"EGenericType"},{"container":true,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":false,"unsettable":false,"transient":true,"unique":true,"name":"table","changeable":true,"resolveProxies":true,"lowerBound":0,"id":21,"derived":false},{"id":22,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"tables","changeable":true,"resolveProxies":true,"lowerBound":0,"id":23,"derived":false},{"id":24,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":false,"unsettable":false,"transient":false,"unique":true,"name":"keys","changeable":true,"resolveProxies":true,"lowerBound":0,"id":25,"derived":false},{"ordered":true,"upperBound":1,"volatile":false,"many":false,"required":false,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"type","changeable":true,"lowerBound":0,"iD":false,"id":26,"derived":false},{"ordered":true,"upperBound":1,"defaultValue":false,"volatile":false,"many":false,"required":false,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"nullable","changeable":true,"lowerBound":0,"iD":false,"id":27,"derived":false},{"ordered":true,"upperBound":1,"defaultValue":0,"volatile":false,"many":false,"required":false,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"length","changeable":true,"lowerBound":0,"iD":false,"id":28,"derived":false},{"ordered":true,"upperBound":1,"defaultValue":0,"volatile":false,"many":false,"required":false,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"scale","changeable":true,"lowerBound":0,"iD":false,"id":29,"derived":false},{"ordered":true,"upperBound":1,"defaultValue":0,"volatile":false,"many":false,"required":false,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"precision","changeable":true,"lowerBound":0,"iD":false,"id":30,"derived":false},{"id":31,"eClass":"EGenericType"},{"id":32,"eClass":"EGenericType"},{"id":33,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":false,"unsettable":false,"transient":false,"unique":true,"name":"columns","changeable":true,"resolveProxies":true,"lowerBound":0,"id":34,"derived":false},{"id":35,"eClass":"EGenericType"},{"id":36,"eClass":"EGenericType"},{"id":37,"eClass":"EGenericType"},{"id":38,"eClass":"EGenericType"},{"id":39,"eClass":"EGenericType"},{"id":40,"eClass":"EGenericType"},{"id":41,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":false,"unsettable":false,"transient":false,"unique":true,"name":"foreignKeys","changeable":true,"resolveProxies":true,"lowerBound":0,"id":42,"derived":false},{"id":43,"eClass":"EGenericType"},{"id":44,"eClass":"EGenericType"},{"id":45,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":false,"unsettable":false,"transient":false,"unique":true,"name":"primaryKey","changeable":true,"resolveProxies":true,"lowerBound":0,"id":46,"derived":false},{"id":47,"eClass":"EGenericType"},{"id":48,"eClass":"EGenericType"},{"id":49,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"name","changeable":true,"lowerBound":0,"iD":false,"id":50,"derived":false},{"id":51,"eClass":"EGenericType"},{"id":52,"eClass":"EGenericType"},{"id":53,"eClass":"EGenericType"},{"name":"VARCHAR","id":54,"value":0,"literal":"VARCHAR","eClass":"EEnumLiteral"},{"name":"CHAR","id":55,"value":1,"literal":"CHAR","eClass":"EEnumLiteral"},{"name":"INTEGER","id":56,"value":2,"literal":"INTEGER","eClass":"EEnumLiteral"},{"name":"DATE","id":57,"value":3,"literal":"DATE","eClass":"EEnumLiteral"},{"id":58,"eClass":"EGenericType"}],"links":[{"source":0,"target":1},{"source":0,"target":2},{"source":0,"target":3},{"source":0,"target":4},{"source":0,"target":5},{"source":0,"target":6},{"source":0,"target":7},{"source":0,"target":8},{"source":0,"target":9},{"source":1,"target":0},{"source":1,"target":6},{"source":1,"target":10},{"source":1,"target":11},{"source":1,"target":12},{"source":1,"target":13},{"source":1,"target":14},{"source":1,"target":15},{"source":10,"target":2},{"source":10,"target":16},{"source":10,"target":1},{"source":10,"target":17},{"source":16,"target":2},{"source":11,"target":4},{"source":11,"target":18},{"source":11,"target":1},{"source":11,"target":19},{"source":18,"target":4},{"source":12,"target":5},{"source":12,"target":20},{"source":12,"target":1},{"source":12,"target":21},{"source":20,"target":5},{"source":13,"target":3},{"source":13,"target":22},{"source":13,"target":1},{"source":13,"target":23},{"source":22,"target":3},{"source":14,"target":24},{"source":14,"target":1},{"source":15,"target":6},{"source":2,"target":0},{"source":2,"target":6},{"source":2,"target":17},{"source":2,"target":25},{"source":2,"target":26},{"source":2,"target":27},{"source":2,"target":28},{"source":2,"target":29},{"source":2,"target":30},{"source":2,"target":31},{"source":17,"target":1},{"source":17,"target":32},{"source":17,"target":2},{"source":17,"target":10},{"source":32,"target":1},{"source":25,"target":7},{"source":25,"target":33},{"source":25,"target":2},{"source":25,"target":34},{"source":33,"target":7},{"source":26,"target":8},{"source":26,"target":35},{"source":26,"target":2},{"source":35,"target":8},{"source":27,"target":36},{"source":27,"target":2},{"source":28,"target":37},{"source":28,"target":2},{"source":29,"target":38},{"source":29,"target":2},{"source":30,"target":39},{"source":30,"target":2},{"source":31,"target":6},{"source":3,"target":0},{"source":3,"target":6},{"source":3,"target":23},{"source":3,"target":40},{"source":23,"target":1},{"source":23,"target":41},{"source":23,"target":3},{"source":23,"target":13},{"source":41,"target":1},{"source":40,"target":6},{"source":4,"target":0},{"source":4,"target":7},{"source":4,"target":19},{"source":4,"target":42},{"source":4,"target":43},{"source":19,"target":1},{"source":19,"target":44},{"source":19,"target":4},{"source":19,"target":11},{"source":44,"target":1},{"source":42,"target":5},{"source":42,"target":45},{"source":42,"target":4},{"source":42,"target":46},{"source":45,"target":5},{"source":43,"target":7},{"source":5,"target":0},{"source":5,"target":7},{"source":5,"target":21},{"source":5,"target":46},{"source":5,"target":47},{"source":21,"target":1},{"source":21,"target":48},{"source":21,"target":5},{"source":21,"target":12},{"source":48,"target":1},{"source":46,"target":4},{"source":46,"target":49},{"source":46,"target":5},{"source":46,"target":42},{"source":49,"target":4},{"source":47,"target":7},{"source":6,"target":0},{"source":6,"target":50},{"source":50,"target":51},{"source":50,"target":6},{"source":7,"target":0},{"source":7,"target":6},{"source":7,"target":34},{"source":7,"target":52},{"source":34,"target":2},{"source":34,"target":53},{"source":34,"target":7},{"source":34,"target":25},{"source":53,"target":2},{"source":52,"target":6},{"source":8,"target":0},{"source":8,"target":54},{"source":8,"target":55},{"source":8,"target":56},{"source":8,"target":57},{"source":54,"target":8},{"source":55,"target":8},{"source":56,"target":8},{"source":57,"target":8},{"source":9,"target":0},{"source":9,"target":1},{"source":9,"target":58},{"source":58,"target":1}],"multigraph":true}